# {py:mod}`drafty_dev.tools.environment`

```{py:module} drafty_dev.tools.environment
```

```{autodoc2-docstring} drafty_dev.tools.environment
:parser: drafty_dev.docs.docstrings
:allowtitles:
```

## Module Contents

### Classes

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`Environment <drafty_dev.tools.environment.Environment>`
  - ```{autodoc2-docstring} drafty_dev.tools.environment.Environment
    :parser: drafty_dev.docs.docstrings
    :summary:
    ```
````

### Functions

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`init_shell <drafty_dev.tools.environment.init_shell>`
  - ```{autodoc2-docstring} drafty_dev.tools.environment.init_shell
    :parser: drafty_dev.docs.docstrings
    :summary:
    ```
* - {py:obj}`run <drafty_dev.tools.environment.run>`
  - ```{autodoc2-docstring} drafty_dev.tools.environment.run
    :parser: drafty_dev.docs.docstrings
    :summary:
    ```
* - {py:obj}`escape <drafty_dev.tools.environment.escape>`
  - ```{autodoc2-docstring} drafty_dev.tools.environment.escape
    :parser: drafty_dev.docs.docstrings
    :summary:
    ```
````

### API

````{py:function} init_shell(path: pathlib.Path | None = None) -> str
:canonical: drafty_dev.tools.environment.init_shell

```{autodoc2-docstring} drafty_dev.tools.environment.init_shell
:parser: drafty_dev.docs.docstrings
```
````

````{py:function} run(args: str | collections.abc.Iterable[str] | None = None, check: bool = True, capture_output: bool = False)
:canonical: drafty_dev.tools.environment.run

```{autodoc2-docstring} drafty_dev.tools.environment.run
:parser: drafty_dev.docs.docstrings
```
````

`````{py:class} Environment(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _env_file_encoding: str | None = None, _env_ignore_empty: bool | None = None, _env_nested_delimiter: str | None = None, _env_nested_max_split: int | None = None, _env_parse_none_str: str | None = None, _env_parse_enums: bool | None = None, _cli_prog_name: str | None = None, _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, _cli_settings_source: pydantic_settings.sources.CliSettingsSource[typing.Any] | None = None, _cli_parse_none_str: str | None = None, _cli_hide_none_type: bool | None = None, _cli_avoid_json: bool | None = None, _cli_enforce_required: bool | None = None, _cli_use_class_docs_for_groups: bool | None = None, _cli_exit_on_error: bool | None = None, _cli_prefix: str | None = None, _cli_flag_prefix_char: str | None = None, _cli_implicit_flags: bool | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, **values: typing.Any)
:canonical: drafty_dev.tools.environment.Environment

Bases: {py:obj}`pydantic_settings.BaseSettings`

```{autodoc2-docstring} drafty_dev.tools.environment.Environment
:parser: drafty_dev.docs.docstrings
```

```{rubric} Initialization
```

```{autodoc2-docstring} drafty_dev.tools.environment.Environment.__init__
:parser: drafty_dev.docs.docstrings
```

````{py:attribute} model_config
:canonical: drafty_dev.tools.environment.Environment.model_config
:value: >
   'SettingsConfigDict(...)'

```{autodoc2-docstring} drafty_dev.tools.environment.Environment.model_config
:parser: drafty_dev.docs.docstrings
```

````

````{py:method} settings_customise_sources(settings_cls, **_)
:canonical: drafty_dev.tools.environment.Environment.settings_customise_sources
:classmethod:

```{autodoc2-docstring} drafty_dev.tools.environment.Environment.settings_customise_sources
:parser: drafty_dev.docs.docstrings
```

````

`````

````{py:function} escape(path: str | pathlib.Path) -> str
:canonical: drafty_dev.tools.environment.escape

```{autodoc2-docstring} drafty_dev.tools.environment.escape
:parser: drafty_dev.docs.docstrings
```
````
