diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index b36f376a..856c085b 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/.doctrees/package-structure-code/intro.doctree b/.doctrees/package-structure-code/intro.doctree index 0fa760b8..7e9955b6 100644 Binary files a/.doctrees/package-structure-code/intro.doctree and b/.doctrees/package-structure-code/intro.doctree differ diff --git a/.doctrees/package-structure-code/python-package-distribution-files-sdist-wheel.doctree b/.doctrees/package-structure-code/python-package-distribution-files-sdist-wheel.doctree index 7a471413..15df950a 100644 Binary files a/.doctrees/package-structure-code/python-package-distribution-files-sdist-wheel.doctree and b/.doctrees/package-structure-code/python-package-distribution-files-sdist-wheel.doctree differ diff --git a/.doctrees/package-structure-code/python-package-structure.doctree b/.doctrees/package-structure-code/python-package-structure.doctree index 75766ff4..a6e48c96 100644 Binary files a/.doctrees/package-structure-code/python-package-structure.doctree and b/.doctrees/package-structure-code/python-package-structure.doctree differ diff --git a/.doctrees/tests/index.doctree b/.doctrees/tests/index.doctree index 501e7244..6002654b 100644 Binary files a/.doctrees/tests/index.doctree and b/.doctrees/tests/index.doctree differ diff --git a/.doctrees/tutorials/intro.doctree b/.doctrees/tutorials/intro.doctree index e07d8144..fa49ecac 100644 Binary files a/.doctrees/tutorials/intro.doctree and b/.doctrees/tutorials/intro.doctree differ diff --git a/_images/social_previews/summary_package-structure-code_intro_48974105.png b/_images/social_previews/summary_package-structure-code_intro_48974105.png new file mode 100644 index 00000000..4e124bff Binary files /dev/null and b/_images/social_previews/summary_package-structure-code_intro_48974105.png differ diff --git a/_images/social_previews/summary_package-structure-code_intro_999f63d6.png b/_images/social_previews/summary_package-structure-code_intro_999f63d6.png deleted file mode 100644 index 2bbcdc0c..00000000 Binary files a/_images/social_previews/summary_package-structure-code_intro_999f63d6.png and /dev/null differ diff --git a/_sources/package-structure-code/intro.md.txt b/_sources/package-structure-code/intro.md.txt index 94b80e72..5b8048e8 100644 --- a/_sources/package-structure-code/intro.md.txt +++ b/_sources/package-structure-code/intro.md.txt @@ -1,13 +1,29 @@ -# Python package structure information +# Python Package Structure -This section provides guidance on your Python package's structure, code formats -and style. It also reviews the various packaging tools that you can use to -support building and publishing your package. +This section provides guidance on your Python package's structure, code format, +and style. It also reviews the various [packaging tools](python-package-build-tools) you can use to +[build](python-package-distribution-files-sdist-wheel) and [publish](publish-python-package-pypi-conda) your Python package. + +If you want end-to-end tutorials, check out our tutorial series that starts by introducing [what a Python package is](what-is-a-package). If you are confused by Python packaging, you are not alone! The good news is -there are some great modern packaging tools that ensure that you're following -best practices. Here, we review tool features and suggest tools that might be -best fitted for your workflow. +that some great modern packaging tools ensure you follow +best practices. Here, we review tool features and suggest tools you can use +for your Python packaging workflow. + +:::{button-link} /tutorials/intro +:color: success +:class: sd-rounded-pill float-left + +Checkout our beginning-to-end create a Python package tutorials + +::: + + +:::{admonition} How this content is developed +All of the content in this guide has been vetted by community members, including maintainers and developers of the core packaging tools. +::: + :::::{grid} 1 1 2 2 :class-container: text-center diff --git a/_sources/package-structure-code/python-package-distribution-files-sdist-wheel.md.txt b/_sources/package-structure-code/python-package-distribution-files-sdist-wheel.md.txt index 87713be5..00fbe346 100644 --- a/_sources/package-structure-code/python-package-distribution-files-sdist-wheel.md.txt +++ b/_sources/package-structure-code/python-package-distribution-files-sdist-wheel.md.txt @@ -152,7 +152,7 @@ Also note that we are not discussing conda build workflows in this section. ``` (python-source-distribution)= -## Source Distribution (sdist) +## What is a source distribution (sdist) **Source files** are the unbuilt files needed to build your package. These are the "raw / as-is" files that you store on GitHub or whatever @@ -226,7 +226,7 @@ the sdist may also contain a file that stores the version. ``` (python-wheel)= -## Wheel (.whl files): +## What is a Python wheel (whl): A wheel file is a ZIP-format archive whose filename follows a specific format (below) and has the extension `.whl`. The `.whl` archive contains a specific diff --git a/_sources/package-structure-code/python-package-structure.md.txt b/_sources/package-structure-code/python-package-structure.md.txt index a9b6a0ff..2156d56c 100644 --- a/_sources/package-structure-code/python-package-structure.md.txt +++ b/_sources/package-structure-code/python-package-structure.md.txt @@ -2,25 +2,41 @@ There are two different layouts that you will commonly see within the Python packaging ecosystem: -[src and flat layouts.](https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/) +src and flat layouts. Both layouts have advantages for different groups of maintainers. We strongly suggest, but do not require, that you use the **src/** layout (discussed below) for creating your Python package. This layout is also recommended in the -[PyPA packaging guide](https://packaging.python.org/en/latest/tutorials/packaging-projects/). +[PyPA packaging guide tutorial](https://packaging.python.org/en/latest/tutorials/packaging-projects/). ```{admonition} pyOpenSci will never require a specific package structure for peer review :class: important -We understand that it would be tremendous effort for existing +We understand that it would take significant effort for existing maintainers to move to a new layout. The overview on this page presents recommendations that we think are best for someone getting started with Python packaging or someone who's package has a simple build and might be open to moving to a more fail-proof approach. + +Other resources you can check out: +* [PyPA's overview of src vs flat layouts](https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/) ``` -An example of the **src/package** layout structure can be seen below. +You can use tools like Hatch to quickly create a modern Python package structure. Check out our quickstart tutorial: + + +:::{button-link} /tutorials/installable-code.html#step-1-set-up-the-package-directory-structure +:color: success +:class: sd-rounded-pill float-left + +Want to learn how to create the structure to build your package? Click here. + +::: + +## What is the Python package source layout? + +An example of the **src/package** layout structure is below. ``` myPackageRepoName @@ -44,8 +60,8 @@ myPackageRepoName Note the location of the following directories in the example above: -- **docs/:** discussed in our docs chapter, this directory contains your user-facing documentation website. In a **src/** layout docs/ are normally included at the same directory level of the **src/** folder. -- **tests/** this directory contains the tests for your project code. In a **src/** layout tests are normally included at the same directory level of the **src/** folder. +- **docs/:** Discussed in our docs chapter, this directory contains your user-facing documentation website. In a **src/** layout docs/ are normally included at the same directory level as the **src/** folder. +- **tests/** This directory contains the tests for your project code. In a **src/** layout, tests are normally included at the same directory level as the **src/** folder. - **src/package/**: this is the directory that contains the code for your Python project. "Package" is normally your project's name. Also in the above example, notice that all of the core documentation files that @@ -61,14 +77,12 @@ include: ```{button-link} https://www.pyopensci.org/python-package-guide/documentation -:color: primary +:color: info :class: sd-rounded-pill Click here to read about our packaging documentation requirements. ``` -While we recommend the **src/** layout we also review the **flat** layout here. Both are used in the Python ecosystem. - ```{admonition} Example scientific packages that use **src/package** layout * [Sourmash](https://github.com/sourmash-bio/sourmash) @@ -81,14 +95,13 @@ While we recommend the **src/** layout we also review the **flat** layout here. ## The src/ layout and testing -The benefit of using the **src/package** layout, particularly if you -are creating a new package, is that it ensures tests are run against the +The benefit of using the **src/package** layout is that it ensures tests are run against the installed version of your package rather than the files in your package working directory. If you run your tests on your files rather than the -installed version, you may be missing issues that users encounter when +installed version of your package, you may be missing issues that users encounter when your package is installed. -If `tests/` are outside of the **src/package** directory, they aren't included in the package wheel. This makes your package size slightly smaller which then places places a smaller storage burden on PyPI which has over 400,000 packages to support. +If `tests/` are outside the **src/package** directory, they aren't included in the package's [wheel](python-wheel). This makes your package size slightly smaller, which places a smaller storage burden on PyPI, and makes them faster to fetch. - [Read more about reasons to use the **src/package** layout](https://hynek.me/articles/testing-packaging/) @@ -98,14 +111,14 @@ By default, Python adds a module in your current working directory to the front This means that if you run your tests in your package's working directory, using a flat layout, `/package/module.py`, Python will discover `package/module.py` file before it discovers the installed package. -However, if your package lives in a src/ directory structure **src/package** then it won't be, by default, added to the Python path. This means that when you import your package, Python will be forced to search the active environment (which has your package installed). +However, if your package lives in a src/ directory structure **src/package**, then it won't be added to the Python path by default. This means that when you import your package, Python will be forced to search the active environment (which has your package installed). -Note: Python versions 3.11 and above have a path setting that can be adjusted to ensure the priority is to use installed packages first (e.g. `PYTHONSAFEPATH`). +Note: Python versions 3.11 and above have a path setting that can be adjusted to ensure the priority is to use installed packages first (e.g., `PYTHONSAFEPATH`). ``` -### Sometimes tests are needed in a distribution +### Don't include tests in your package wheel -We do not recommend including tests as part of your package wheel by default. However, not including tests in your package distribution will make it harder for people other than yourself to test whether your package is functioning correctly on their system. If you have a small test suite (Python files + data), and think your users may want to run tests locally on their systems, you can include tests by moving the `tests/` directory into the **src/package** directory (see example below). +Writing [tests](tests-intro) for your package is important; however, we do not recommend including tests as part of your [package wheel](python-wheel) by default. However, not including tests in your package distribution will make it harder for people other than yourself to test whether your package runs properly on their system. If you have a small test suite (Python files + data), and think your users may want to run tests locally on their systems, you can include tests by moving the `tests/` directory into the **src/package** directory (see example below). ```bash src/ @@ -114,69 +127,76 @@ src/ docs/ ``` -Including the **tests/** directory in your **src/package** directory ensures that tests will be included in your package's wheel. +Including the **tests/** directory in your **src/package** directory ensures that tests will be included in your package's [wheel](python-wheel). Be sure to read the [pytest documentation for more about including tests in your package distribution](https://docs.pytest.org/en/7.2.x/explanation/goodpractices.html#choosing-a-test-layout-import-rules). ```{admonition} Challenges with including tests and data in a package wheel :class: tip -Tests, especially when accompanied by test data can create a few small challenges including: +Tests, especially when accompanied by test data, can create a few small challenges, including: -- Take up space in your distribution which will build up over time as storage space on PyPI -- Large file sizes can also slow down package install. +- Take up space in your distribution, which will build up over time as storage space on PyPI +- Large file sizes can also slow down package installation. -However, in some cases, particularly in the scientific Python ecosystems you may need to include tests. +However, in some cases, particularly in the scientific Python ecosystem, you may need to include tests. ``` ### **Don't include test suite datasets in your package** -If you do include your tests in your package distribution, we strongly +If you include your tests in your package distribution, we strongly discourage you from including data in your test suite directory. Rather, host your test data in a repository such as Figshare or Zenodo. Use a tool such as [Pooch](https://www.fatiando.org/pooch/latest/) to access the data when you (or a user) runs tests. -Check out the testing section of our guide for more information about tests. +For more information about Python package tests, see the [tests section of our guide](tests-intro). - The **src/package** layout is semantically more clear. Code is always found in the **src/package** directory, `tests/` and `docs/`are in the root directory. ```{important} -If your package tests require data, we suggest that you do NOT include that -data within your package structure. We will discuss this in more detail in a -tutorial. Include data in your package structure increases the size of your +If your package tests require data, do NOT include that +data within your package structure. Including data in your package structure increases the size of your distribution files. This places a maintenance toll on repositories like PyPI and Anaconda.org that have to deal with thousands of package uploads. ``` -## About the flat Python package layout -Currently most scientific packages use the **flat-layout** given: +:::{button-link} /tutorials/installable-code.html#step-1-set-up-the-package-directory-structure +:color: success +:class: sd-rounded-pill float-left -- It's the most commonly found layout with the scientific Python ecosystem and - people tend to look to other packages / maintainers that they respect for examples - of how to build Python packages. -- Many Python tools depend upon tools in other language and / or complex builds - with compilation steps. Many developers thus appreciate / are used to features - of the flat layout. -While we present this layout here in our guide, we suggest that those just -getting started with python packaging start with the src/package layout -discussed above. Numerous packages in the ecosystem [have had to move to a -src/ layout](https://github.com/scikit-build/cmake-python-distributions/pull/145) +Click here for a quickstart tutorial on creating your Python package. + +::: + +(flat-layout)= +## What is the flat Python package layout? + +Many scientific packages use the **flat-layout** given: + +- This layout is used by many core scientific Python packages such as NumPy, SciPy, and Matplotlib. +- Many Python tools depend upon tools in other languages and/or complex builds + with compilation steps. Many maintainers prefer features + of the flat layout for more complex builds. + +While we suggest that you use the **src/package** layout discussed above, it's important to also +understand the flat layout, especially if you plan to contribute to a package that uses this layout. + ```{admonition} Why most scientific Python packages do not use source :class: tip -In most cases the advantages of using the **src/package** layout for -larger scientific packages that already use flat approach are not worth it. -Moving from a flat layout to a **src/package** layout would come at a significant cost to -maintainers. +In most cases, moving to the **src/package** layout for +larger scientific packages that already use a flat layout would consume significant time. However, the advantages of using the **src/package** layout for a beginner are significant. -As such, we recommend that if you are getting started with creating a package, -that you consider using a **src/package** layout. +As such, we recommend that you use the **src/package** layout if you are creating a new package. + +Numerous packages in the ecosystem [have had to move to a +**src/package** layout](https://github.com/scikit-build/cmake-python-distributions/pull/145). ``` ## What does the flat layout structure look like? @@ -234,7 +254,7 @@ There are some benefits to the scientific community in using the flat layout. It would be a significant maintenance cost and burden to move all of these packages to a different layout. The potential benefits of the source layout -for these tools is not worth the maintenance investment. +for these tools are not worth the maintenance investment. ``` diff --git a/_sources/tests/index.md.txt b/_sources/tests/index.md.txt index 05ff0eee..73de20f4 100644 --- a/_sources/tests/index.md.txt +++ b/_sources/tests/index.md.txt @@ -1,11 +1,12 @@ +(tests-intro)= # Tests and data for your Python package Tests are an important part of your Python package because they provide a set of checks that ensure that your package is functioning how you expect it to. -In this section you will learn more about the importance of writing -tests for your Python package and how you can setup infrastructure +In this section, you will learn more about the importance of writing +tests for your Python package and how you can set up infrastructure to run your tests both locally and on GitHub. diff --git a/_sources/tutorials/intro.md.txt b/_sources/tutorials/intro.md.txt index cdf34e0b..76238c00 100644 --- a/_sources/tutorials/intro.md.txt +++ b/_sources/tutorials/intro.md.txt @@ -1,3 +1,4 @@ +(packaging-101)= # Python packaging 101 _A start to finish beginner-friendly tutorial_ @@ -75,6 +76,7 @@ After reading this lesson you will: ::: +(what-is-a-package)= ## What is a Python package? At a high level, you can think about a Python package as a toolbox diff --git a/objects.inv b/objects.inv index 4db23e17..48dd7515 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/package-structure-code/code-style-linting-format.html b/package-structure-code/code-style-linting-format.html index 7d73313d..6d76a280 100644 --- a/package-structure-code/code-style-linting-format.html +++ b/package-structure-code/code-style-linting-format.html @@ -464,7 +464,7 @@ - + diff --git a/package-structure-code/complex-python-package-builds.html b/package-structure-code/complex-python-package-builds.html index 7918eca9..33603483 100644 --- a/package-structure-code/complex-python-package-builds.html +++ b/package-structure-code/complex-python-package-builds.html @@ -464,7 +464,7 @@ - + diff --git a/package-structure-code/declare-dependencies.html b/package-structure-code/declare-dependencies.html index 4ef9ce5b..aed23ad5 100644 --- a/package-structure-code/declare-dependencies.html +++ b/package-structure-code/declare-dependencies.html @@ -464,7 +464,7 @@ - + diff --git a/package-structure-code/intro.html b/package-structure-code/intro.html index 3a692ffe..00faaff2 100644 --- a/package-structure-code/intro.html +++ b/package-structure-code/intro.html @@ -7,19 +7,19 @@ - + - + - - - + + + - Python package structure information — Python Packaging Guide + Python Package Structure — Python Packaging Guide @@ -463,7 +463,7 @@ - + @@ -480,15 +480,21 @@
-
-

Python package structure information#

-

This section provides guidance on your Python package’s structure, code formats -and style. It also reviews the various packaging tools that you can use to -support building and publishing your package.

+
+

Python Package Structure#

+

This section provides guidance on your Python package’s structure, code format, +and style. It also reviews the various packaging tools you can use to +build and publish your Python package.

+

If you want end-to-end tutorials, check out our tutorial series that starts by introducing what a Python package is.

If you are confused by Python packaging, you are not alone! The good news is -there are some great modern packaging tools that ensure that you’re following -best practices. Here, we review tool features and suggest tools that might be -best fitted for your workflow.

+that some great modern packaging tools ensure you follow +best practices. Here, we review tool features and suggest tools you can use +for your Python packaging workflow.

+

Checkout our beginning-to-end create a Python package tutorials

+
+

How this content is developed

+

All of the content in this guide has been vetted by community members, including maintainers and developers of the core packaging tools.

+
diff --git a/package-structure-code/publish-python-package-pypi-conda.html b/package-structure-code/publish-python-package-pypi-conda.html index 71a10d09..941a2b57 100644 --- a/package-structure-code/publish-python-package-pypi-conda.html +++ b/package-structure-code/publish-python-package-pypi-conda.html @@ -464,7 +464,7 @@ - + diff --git a/package-structure-code/pyproject-toml-python-package-metadata.html b/package-structure-code/pyproject-toml-python-package-metadata.html index d70f7c31..a7b5964d 100644 --- a/package-structure-code/pyproject-toml-python-package-metadata.html +++ b/package-structure-code/pyproject-toml-python-package-metadata.html @@ -464,7 +464,7 @@ - + diff --git a/package-structure-code/python-package-build-tools.html b/package-structure-code/python-package-build-tools.html index 7a2daba8..44c2a35a 100644 --- a/package-structure-code/python-package-build-tools.html +++ b/package-structure-code/python-package-build-tools.html @@ -464,7 +464,7 @@ - + diff --git a/package-structure-code/python-package-distribution-files-sdist-wheel.html b/package-structure-code/python-package-distribution-files-sdist-wheel.html index 335a22df..75f032ad 100644 --- a/package-structure-code/python-package-distribution-files-sdist-wheel.html +++ b/package-structure-code/python-package-distribution-files-sdist-wheel.html @@ -464,7 +464,7 @@ - + @@ -623,8 +623,8 @@

How to create the distribution format that PyPI and Pip expects?You can learn more about conda builds here.

-
-

Source Distribution (sdist)#

+
+

What is a source distribution (sdist)#

Source files are the unbuilt files needed to build your package. These are the “raw / as-is” files that you store on GitHub or whatever platform you use to manage your code.

@@ -690,8 +690,8 @@

How to create the distribution format that PyPI and Pip expects? -

Wheel (.whl files):#

+
+

What is a Python wheel (whl):#

A wheel file is a ZIP-format archive whose filename follows a specific format (below) and has the extension .whl. The .whl archive contains a specific set of files, including metadata that are generated from your project’s @@ -816,8 +816,8 @@

How to create the distribution format that PyPI and Pip expects?How to create the distribution format that PyPI and Pip expects? -
  • Source Distribution (sdist)
  • -
  • Wheel (.whl files):
  • +
  • What is a source distribution (sdist)
  • +
  • What is a Python wheel (whl):
  • diff --git a/package-structure-code/python-package-structure.html b/package-structure-code/python-package-structure.html index 42c5b52a..d41e2f2c 100644 --- a/package-structure-code/python-package-structure.html +++ b/package-structure-code/python-package-structure.html @@ -65,7 +65,7 @@ - + @@ -464,7 +464,7 @@ - + @@ -487,20 +487,28 @@

    Python Package Structure for Scientific Python Projects#

    There are two different layouts that you will commonly see within the Python packaging ecosystem: -src and flat layouts. +src and flat layouts. Both layouts have advantages for different groups of maintainers.

    We strongly suggest, but do not require, that you use the src/ layout (discussed below) for creating your Python package. This layout is also recommended in the -PyPA packaging guide.

    +PyPA packaging guide tutorial.

    pyOpenSci will never require a specific package structure for peer review

    -

    We understand that it would be tremendous effort for existing +

    We understand that it would take significant effort for existing maintainers to move to a new layout.

    The overview on this page presents recommendations that we think are best for someone getting started with Python packaging or someone who’s package has a simple build and might be open to moving to a more fail-proof approach.

    +

    Other resources you can check out:

    +
    -

    An example of the src/package layout structure can be seen below.

    +

    You can use tools like Hatch to quickly create a modern Python package structure. Check out our quickstart tutorial:

    +

    Want to learn how to create the structure to build your package? Click here.

    +
    +

    What is the Python package source layout?#

    +

    An example of the src/package layout structure is below.

    myPackageRepoName
     ├── CHANGELOG.md               ┐
     ├── CODE_OF_CONDUCT.md         │
    @@ -522,8 +530,8 @@ 

    Python Package Structure for Scientific Python Projects

    Note the location of the following directories in the example above:

      -
    • docs/: discussed in our docs chapter, this directory contains your user-facing documentation website. In a src/ layout docs/ are normally included at the same directory level of the src/ folder.

    • -
    • tests/ this directory contains the tests for your project code. In a src/ layout tests are normally included at the same directory level of the src/ folder.

    • +
    • docs/: Discussed in our docs chapter, this directory contains your user-facing documentation website. In a src/ layout docs/ are normally included at the same directory level as the src/ folder.

    • +
    • tests/ This directory contains the tests for your project code. In a src/ layout, tests are normally included at the same directory level as the src/ folder.

    • src/package/: this is the directory that contains the code for your Python project. “Package” is normally your project’s name.

    Also in the above example, notice that all of the core documentation files that @@ -537,8 +545,7 @@

    Python Package Structure for Scientific Python Projects

    README.md

    -

    Click here to read about our packaging documentation requirements.

    -

    While we recommend the src/ layout we also review the flat layout here. Both are used in the Python ecosystem.

    +

    Click here to read about our packaging documentation requirements.

    Example scientific packages that use src/package layout

      @@ -549,15 +556,15 @@

      Python Package Structure for Scientific Python Projects

      poliastro

    +

    The src/ layout and testing#

    -

    The benefit of using the src/package layout, particularly if you -are creating a new package, is that it ensures tests are run against the +

    The benefit of using the src/package layout is that it ensures tests are run against the installed version of your package rather than the files in your package working directory. If you run your tests on your files rather than the -installed version, you may be missing issues that users encounter when +installed version of your package, you may be missing issues that users encounter when your package is installed.

    -

    If tests/ are outside of the src/package directory, they aren’t included in the package wheel. This makes your package size slightly smaller which then places places a smaller storage burden on PyPI which has over 400,000 packages to support.

    +

    If tests/ are outside the src/package directory, they aren’t included in the package’s wheel. This makes your package size slightly smaller, which places a smaller storage burden on PyPI, and makes them faster to fetch.

    @@ -565,76 +572,72 @@

    The src/ layout and testingHow Python discovers and prioritizes importing modules

    By default, Python adds a module in your current working directory to the front of the Python module search path.

    This means that if you run your tests in your package’s working directory, using a flat layout, /package/module.py, Python will discover package/module.py file before it discovers the installed package.

    -

    However, if your package lives in a src/ directory structure src/package then it won’t be, by default, added to the Python path. This means that when you import your package, Python will be forced to search the active environment (which has your package installed).

    -

    Note: Python versions 3.11 and above have a path setting that can be adjusted to ensure the priority is to use installed packages first (e.g. PYTHONSAFEPATH).

    +

    However, if your package lives in a src/ directory structure src/package, then it won’t be added to the Python path by default. This means that when you import your package, Python will be forced to search the active environment (which has your package installed).

    +

    Note: Python versions 3.11 and above have a path setting that can be adjusted to ensure the priority is to use installed packages first (e.g., PYTHONSAFEPATH).

    -
    -

    Sometimes tests are needed in a distribution#

    -

    We do not recommend including tests as part of your package wheel by default. However, not including tests in your package distribution will make it harder for people other than yourself to test whether your package is functioning correctly on their system. If you have a small test suite (Python files + data), and think your users may want to run tests locally on their systems, you can include tests by moving the tests/ directory into the src/package directory (see example below).

    +
    +

    Don’t include tests in your package wheel#

    +

    Writing tests for your package is important; however, we do not recommend including tests as part of your package wheel by default. However, not including tests in your package distribution will make it harder for people other than yourself to test whether your package runs properly on their system. If you have a small test suite (Python files + data), and think your users may want to run tests locally on their systems, you can include tests by moving the tests/ directory into the src/package directory (see example below).

    src/
       package/
         tests/
     docs/
     
    -

    Including the tests/ directory in your src/package directory ensures that tests will be included in your package’s wheel.

    +

    Including the tests/ directory in your src/package directory ensures that tests will be included in your package’s wheel.

    Be sure to read the pytest documentation for more about including tests in your package distribution.

    Challenges with including tests and data in a package wheel

    -

    Tests, especially when accompanied by test data can create a few small challenges including:

    +

    Tests, especially when accompanied by test data, can create a few small challenges, including:

      -
    • Take up space in your distribution which will build up over time as storage space on PyPI

    • -
    • Large file sizes can also slow down package install.

    • +
    • Take up space in your distribution, which will build up over time as storage space on PyPI

    • +
    • Large file sizes can also slow down package installation.

    -

    However, in some cases, particularly in the scientific Python ecosystems you may need to include tests.

    +

    However, in some cases, particularly in the scientific Python ecosystem, you may need to include tests.

    Don’t include test suite datasets in your package#

    -

    If you do include your tests in your package distribution, we strongly +

    If you include your tests in your package distribution, we strongly discourage you from including data in your test suite directory. Rather, host your test data in a repository such as Figshare or Zenodo. Use a tool such as Pooch to access the data when you (or a user) runs tests.

    -

    Check out the testing section of our guide for more information about tests.

    +

    For more information about Python package tests, see the tests section of our guide.

    • The src/package layout is semantically more clear. Code is always found in the src/package directory, tests/ and docs/are in the root directory.

    Important

    -

    If your package tests require data, we suggest that you do NOT include that -data within your package structure. We will discuss this in more detail in a -tutorial. Include data in your package structure increases the size of your +

    If your package tests require data, do NOT include that +data within your package structure. Including data in your package structure increases the size of your distribution files. This places a maintenance toll on repositories like PyPI and Anaconda.org that have to deal with thousands of package uploads.

    +

    +Click here for a quickstart tutorial on creating your Python package.

    -
    -

    About the flat Python package layout#

    -

    Currently most scientific packages use the flat-layout given:

    +
    +

    What is the flat Python package layout?#

    +

    Many scientific packages use the flat-layout given:

      -
    • It’s the most commonly found layout with the scientific Python ecosystem and -people tend to look to other packages / maintainers that they respect for examples -of how to build Python packages.

    • -
    • Many Python tools depend upon tools in other language and / or complex builds -with compilation steps. Many developers thus appreciate / are used to features -of the flat layout.

    • +
    • This layout is used by many core scientific Python packages such as NumPy, SciPy, and Matplotlib.

    • +
    • Many Python tools depend upon tools in other languages and/or complex builds +with compilation steps. Many maintainers prefer features +of the flat layout for more complex builds.

    -

    While we present this layout here in our guide, we suggest that those just -getting started with python packaging start with the src/package layout -discussed above. Numerous packages in the ecosystem have had to move to a -src/ layout

    +

    While we suggest that you use the src/package layout discussed above, it’s important to also +understand the flat layout, especially if you plan to contribute to a package that uses this layout.

    Why most scientific Python packages do not use source

    -

    In most cases the advantages of using the src/package layout for -larger scientific packages that already use flat approach are not worth it. -Moving from a flat layout to a src/package layout would come at a significant cost to -maintainers.

    +

    In most cases, moving to the src/package layout for +larger scientific packages that already use a flat layout would consume significant time.

    However, the advantages of using the src/package layout for a beginner are significant. -As such, we recommend that if you are getting started with creating a package, -that you consider using a src/package layout.

    +As such, we recommend that you use the src/package layout if you are creating a new package.

    +

    Numerous packages in the ecosystem have had to move to a +src/package layout.

    @@ -690,7 +693,7 @@

    Benefits of using the flat layout in your Python package

    @@ -726,7 +729,7 @@

    Benefits of using the flat layout in your Python package

    previous

    -

    Python package structure information

    +

    Python Package Structure

    Benefits of using the flat layout in your Python package diff --git a/searchindex.js b/searchindex.js index 0cd0098b..0d4a0921 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"1. Basic Tool Users": [[7, "basic-tool-users"]], "2. Potential tool contributors": [[7, "potential-tool-contributors"]], "4 Steps for publishing a Python package on TestPyPI (or PyPI)": [[42, "steps-for-publishing-a-python-package-on-testpypi-or-pypi"]], " How to Publish your package on conda-forge": [[41, "how-to-publish-your-package-on-conda-forge"]], " Wrap up": [[35, "wrap-up"], [36, "wrap-up"], [41, "wrap-up"], [43, "wrap-up"]], " Congratulations - you have added your package to conda-forge.": [[41, "congratulations-you-have-added-your-package-to-conda-forge"]], " Congratulations - you\u2019ve created your Python package distribution files ": [[42, "congratulations-you-ve-created-your-python-package-distribution-files"]], "A brief history of conda\u2019s evolution": [[24, null]], "A community-created guidebook": [[19, "a-community-created-guidebook"]], "A dependency example": [[22, null]], "A note about versioning": [[29, null]], "A note for conda users": [[22, null]], "About the .toml format": [[25, "about-the-toml-format"], [43, "about-the-toml-format"]], "About the Python package directory structure": [[39, "about-the-python-package-directory-structure"]], "About the basic package directory structure": [[39, "about-the-basic-package-directory-structure"]], "About the flat Python package layout": [[28, "about-the-flat-python-package-layout"]], "About the pyproject.toml file": [[25, "about-the-pyproject-toml-file"]], "About this guide": [[19, null]], "About this lesson": [[39, null]], "Add a LICENSE & CODE_OF_CONDUCT to your Python package": [[35, null]], "Add a README file to your Python package": [[36, null]], "Add dependencies to your pyproject.toml file": [[25, "add-dependencies-to-your-pyproject-toml-file"]], "Add required dependencies to your pyproject.toml file": [[22, "add-required-dependencies-to-your-pyproject-toml-file"]], "Adding type hints to your docstrings": [[16, "adding-type-hints-to-your-docstrings"]], "Additional Code of Conduct resources": [[35, null]], "Additional dependency resources": [[22, null]], "Additional help": [[0, "additional-help"]], "Additional resources": [[0, "additional-resources"], [24, null]], "Advanced options in the pyproject.toml file": [[25, "advanced-options-in-the-pyproject-toml-file"]], "After hatch init": [[44, "after-hatch-init"]], "An ecosystem of Python build tools": [[26, "an-ecosystem-of-python-build-tools"]], "An example - xclim": [[27, "an-example-xclim"]], "An example of how a license determine how code can be reused": [[13, null]], "An overview of licenses in the scientific Python ecosystem": [[35, null]], "Annex": [[0, "annex"]], "Author names & emails": [[43, null]], "Avoid manually updating Python package version numbers if you can": [[29, "avoid-manually-updating-python-package-version-numbers-if-you-can"]], "Before hatch init": [[44, "before-hatch-init"]], "Before you submit your pull request": [[0, "before-you-submit-your-pull-request"]], "Benefits of using a pyproject.toml file": [[25, "benefits-of-using-a-pyproject-toml-file"]], "Benefits of using the flat layout in your Python package": [[28, "benefits-of-using-the-flat-layout-in-your-python-package"]], "Best: a docstring with example use of the function": [[16, "best-a-docstring-with-example-use-of-the-function"]], "Beware of too much type hinting": [[16, null]], "Black": [[20, "black"]], "Brief overview of the TOML file": [[39, null]], "Build back-end support for non pure-python packages": [[26, "build-back-end-support-for-non-pure-python-packages"]], "Build back-ends": [[26, "build-back-ends"]], "Build front-end vs. build back-end tools": [[26, "build-front-end-vs-build-back-end-tools"]], "Building the Translated Documentation": [[1, "building-the-translated-documentation"]], "CHANGELOG.md Guide": [[8, null]], "CI & pull requests": [[33, "ci-pull-requests"]], "Challenges using setuptools": [[26, "challenges-using-setuptools"]], "Challenges with PDM": [[26, "challenges-with-pdm"]], "Challenges with Poetry": [[26, "challenges-with-poetry"]], "Challenges with Poetry dependency pinning": [[26, null]], "Challenges with including tests and data in a package wheel": [[28, null]], "Check that hatch installed correctly": [[38, "check-that-hatch-installed-correctly"]], "Choosing a build back-end": [[26, "choosing-a-build-back-end"]], "Chose a build workflow tool": [[26, "chose-a-build-workflow-tool"]], "Clone your forked repository": [[0, "clone-your-forked-repository"]], "Code Formatters (and stylers)": [[20, "code-formatters-and-stylers"]], "Code Linting": [[20, "code-linting"]], "Code examples": [[0, "code-examples"]], "Code linting, formatting and styling tools": [[20, "code-linting-formatting-and-styling-tools"]], "Code should also be clean & readable & documented": [[40, "code-should-also-be-clean-readable-documented"]], "Combining sets of dependencies": [[22, "combining-sets-of-dependencies"]], "Command Line Reference Guide": [[37, null]], "Commit your changes": [[0, "commit-your-changes"]], "Commonly used Sphinx themes": [[5, "commonly-used-sphinx-themes"]], "Comparing unit, integration and end-to-end tests": [[32, "comparing-unit-integration-and-end-to-end-tests"]], "Comparison to other tools": [[38, null]], "Complex Python package builds": [[21, null]], "Conda-forge publication steps": [[41, "conda-forge-publication-steps"]], "Configure Hatch": [[38, "configure-hatch"]], "Congratulations! You created your first Python package": [[39, "congratulations-you-created-your-first-python-package"]], "Continuous integration and continuous deployment": [[40, "continuous-integration-and-continuous-deployment"]], "Contributing": [[19, "contributing"]], "Contributing File in your Python Open Source Package": [[10, null]], "Contributing locally on your computer": [[0, "contributing-locally-on-your-computer"]], "Contributing to the Python Packaging Guide": [[0, null]], "Contributing via the GitHub website": [[0, "contributing-via-the-github-website"]], "Copyleft licenses": [[13, null]], "Core components of user-facing Python package documentation": [[17, "core-components-of-user-facing-python-package-documentation"]], "Core scientific Python packages that use the flat layout": [[28, null]], "Create Python package tutorials that run when you build your docs": [[15, "create-python-package-tutorials-that-run-when-you-build-your-docs"]], "Create User Facing Documentation for your Python Package": [[17, null]], "Create a README.md file for your package": [[36, "create-a-readme-md-file-for-your-package"]], "Create a new branch": [[0, "create-a-new-branch"]], "Create a virtual environment": [[0, "create-a-virtual-environment"]], "Create optional dependency groups": [[22, "create-optional-dependency-groups"]], "Create tutorials in your Python package documentation": [[15, null]], "Creating New Versions of Your Python Package": [[29, null]], "Creating code for documentation": [[0, "creating-code-for-documentation"]], "Dependencies can be added to your pyproject.toml file": [[22, null]], "Dependencies in Read the Docs": [[22, "dependencies-in-read-the-docs"]], "Docstring examples Better and Best": [[16, "docstring-examples-better-and-best"]], "Document the code in your package\u2019s API using docstrings": [[16, null]], "Documentation": [[19, "documentation"]], "Documentation Files That Should be in your Python Package Repository": [[12, null]], "Documentation elements that pyOpenSci looks for reviewing a Python package": [[7, "documentation-elements-that-pyopensci-looks-for-reviewing-a-python-package"]], "Documentation for your Open Source Python Package": [[7, null]], "Documentation is critical for your Python package\u2019s success": [[7, "documentation-is-critical-for-your-python-package-s-success"]], "Documentation syntax: markdown vs. myST vs. rst syntax to create your docs": [[3, null]], "Don\u2019t include test suite datasets in your package": [[28, "don-t-include-test-suite-datasets-in-your-package"]], "Editing the Translation Files": [[1, "editing-the-translation-files"]], "End-to-end (functional) tests": [[32, "end-to-end-functional-tests"]], "Environment Setup": [[37, "environment-setup"]], "Example CODE_OF_CONDUCT files": [[9, null]], "Example GitHub Actions that runs tests": [[33, "example-github-actions-that-runs-tests"]], "Example application of isort": [[20, "example-application-of-isort"]], "Example build steps that can be simplified using a front-end tool": [[26, "example-build-steps-that-can-be-simplified-using-a-front-end-tool"]], "Example contributing files": [[10, null]], "Example pyproject.toml files": [[43, "example-pyproject-toml-files"]], "Example pyproject.toml for building using hatchling": [[25, "example-pyproject-toml-for-building-using-hatchling"]], "Example pyproject.toml for building using setuptools": [[25, "example-pyproject-toml-for-building-using-setuptools"]], "Example scientific packages that use src/package layout": [[28, null]], "Flake8": [[20, "flake8"]], "Flit": [[26, "flit"]], "Flit Features": [[26, "flit-features"]], "Follow the steps below to create your token.": [[42, "follow-the-steps-below-to-create-your-token"]], "Footnotes": [[35, "footnotes"], [39, "footnotes"], [41, "footnotes"], [42, "footnotes"]], "For zsh shell users": [[22, null]], "Forking the repository": [[0, "forking-the-repository"]], "Four elements of a good open source documentation landing page": [[17, "four-elements-of-a-good-open-source-documentation-landing-page"]], "Frequently Asked Questions (FAQ)": [[1, "frequently-asked-questions-faq"]], "General pre commit checks": [[20, "general-pre-commit-checks"]], "Get to Know Hatch": [[38, null]], "Get to know Hatch": [[44, null]], "GitHub & GitLab vs. Git": [[40, null]], "GitHub archive vs sdist": [[27, null]], "Google Analytics": [[6, "google-analytics"]], "Gradually adding type hints": [[16, "gradually-adding-type-hints"]], "Guidelines for pyOpenSci\u2019s packaging recommendations": [[23, "guidelines-for-pyopensci-s-packaging-recommendations"]], "Hatch": [[26, "hatch"]], "Hatch (or other tools like PDM) Cons": [[29, "hatch-or-other-tools-like-pdm-cons"]], "Hatch (or other tools like PDM) Pros": [[29, "hatch-or-other-tools-like-pdm-pros"]], "Hatch and environments": [[42, "hatch-and-environments"]], "Hatch and project names": [[39, null]], "Hatch example setup in your pyproject.toml": [[29, "hatch-example-setup-in-your-pyproject-toml"]], "Hatch features": [[26, "hatch-features"], [38, "hatch-features"]], "How Python discovers and prioritizes importing modules": [[28, null]], "How can I get help with my translation?": [[1, "how-can-i-get-help-with-my-translation"]], "How do I handle formatting in the translated text?": [[1, "how-do-i-handle-formatting-in-the-translated-text"]], "How do I handle links in the translated text?": [[1, "how-do-i-handle-links-in-the-translated-text"]], "How do I handle strings that are too long for a single line?": [[1, "how-do-i-handle-strings-that-are-too-long-for-a-single-line"]], "How do I know what type of tests to write?": [[34, "how-do-i-know-what-type-of-tests-to-write"]], "How do I know when a translation is ready to be released?": [[1, "how-do-i-know-when-a-translation-is-ready-to-be-released"]], "How do I know which strings need to be translated?": [[1, "how-do-i-know-which-strings-need-to-be-translated"]], "How do I translate images?": [[1, "how-do-i-translate-images"]], "How do maintainers use it?": [[8, "how-do-maintainers-use-it"]], "How do you declare dependencies?": [[22, "how-do-you-declare-dependencies"]], "How does this relate to code for a research project?": [[40, null]], "How is pyproject.toml metadata used?": [[43, "how-is-pyproject-toml-metadata-used"]], "How publishing to conda-forge works": [[41, "how-publishing-to-conda-forge-works"]], "How the Python Packaging Guide is structured": [[0, "how-the-python-packaging-guide-is-structured"]], "How the pyproject.toml is used when you build a package": [[25, "how-the-pyproject-toml-is-used-when-you-build-a-package"]], "How to add a CODE_OF_CONDUCT file to your package directory": [[35, "how-to-add-a-code-of-conduct-file-to-your-package-directory"]], "How to add a LICENSE file to your package directory": [[35, "how-to-add-a-license-file-to-your-package-directory"]], "How to add a LICENSE to your package - the manual way": [[35, "how-to-add-a-license-to-your-package-the-manual-way"]], "How to build the guide locally": [[0, "how-to-build-the-guide-locally"]], "How to choose a license": [[13, "how-to-choose-a-license"]], "How to commit your changes": [[0, "how-to-commit-your-changes"]], "How to create the distribution format that PyPI and Pip expects?": [[27, "how-to-create-the-distribution-format-that-pypi-and-pip-expects"]], "How to edit a MarkDown file": [[0, "how-to-edit-a-markdown-file"]], "How to get help": [[0, "how-to-get-help"]], "How to make a pull request": [[0, "how-to-make-a-pull-request"]], "How to publish your Python package documentation online": [[4, null]], "How to submit to conda-forge": [[24, "how-to-submit-to-conda-forge"]], "How to update your pyproject.toml file": [[43, "how-to-update-your-pyproject-toml-file"]], "How to use code formatter in your local workflow": [[20, "how-to-use-code-formatter-in-your-local-workflow"]], "I am interested in translating the guide into a language that is not listed. How can I get started?": [[1, "i-am-interested-in-translating-the-guide-into-a-language-that-is-not-listed-how-can-i-get-started"]], "Important": [[1, null], [1, null]], "Important pyproject.toml take aways": [[25, null]], "Important: make sure that you closely follow the guidelines outlines by the License that you chose": [[13, "important-make-sure-that-you-closely-follow-the-guidelines-outlines-by-the-license-that-you-chose"]], "Install Hatch": [[38, "install-hatch"]], "Install dependency groups": [[22, "install-dependency-groups"]], "Install the development dependencies": [[0, "install-the-development-dependencies"]], "Install your package from TestPyPI": [[42, "install-your-package-from-testpypi"]], "Installing packages from GitHub": [[39, null]], "Installing packages from GitHub / Gitlab": [[22, null]], "Integration tests": [[32, "integration-tests"]], "Introduction": [[8, "introduction"]], "Isort": [[20, "isort"]], "Issues or Ticket Trackers": [[40, "issues-or-ticket-trackers"]], "Key Takeways": [[29, null]], "Learn about Building a Python Package": [[27, null]], "Learn more about building Python packages in our guide": [[42, null]], "Learn more about building a Python package": [[42, null]], "Learn more about flit": [[26, null]], "Learning Objectives": [[40, null], [41, null], [42, null], [43, null], [44, null]], "Learning objectives": [[35, null], [36, null]], "License files for scientific Python open source software": [[13, null]], "License recommendations from the SciPy package": [[13, null]], "Licenses for the scientific Python ecosystem": [[35, null]], "Linters, code formatters and your favorite coding tools": [[20, "linters-code-formatters-and-your-favorite-coding-tools"]], "Linting vs format and style": [[20, "linting-vs-format-and-style"]], "Look for pyospackage in your environment": [[39, "look-for-pyospackage-in-your-environment"]], "Maintaining a conda-forge package": [[41, "maintaining-a-conda-forge-package"]], "Maintaining your conda-forge feedstock": [[41, "maintaining-your-conda-forge-feedstock"]], "Maintaining your conda-forge package repository": [[24, "maintaining-your-conda-forge-package-repository"]], "Make your Python code installable": [[39, null]], "Make your Python package PyPI ready - pyproject.toml": [[43, null]], "Making your package installable - publishing to PyPI & conda-forge": [[40, "making-your-package-installable-publishing-to-pypi-conda-forge"]], "Managing Python package dependency conflicts": [[24, "managing-python-package-dependency-conflicts"]], "Matplotlib as an example": [[40, null]], "Mixing frontend and backend projects": [[21, "mixing-frontend-and-backend-projects"]], "More on hatchling": [[43, null]], "Next (optional) step - publishing to conda-forge": [[43, "next-optional-step-publishing-to-conda-forge"]], "Note": [[44, null]], "Note about setup.py": [[39, null]], "Nox with conda / mamba": [[31, "nox-with-conda-mamba"]], "Nox with venv environments": [[31, "nox-with-venv-environments"]], "OPTIONAL: Adjust project classifiers": [[39, "optional-adjust-project-classifiers"]], "OPTIONAL: If you want to use a manual token-based publication workflow": [[42, "optional-if-you-want-to-use-a-manual-token-based-publication-workflow"]], "Optimizing your documentation so search engines (and other users) find it": [[6, null]], "Optional dependencies": [[22, "optional-dependencies"], [22, "id2"]], "Optional fields to include in the [project] table": [[25, "optional-fields-to-include-in-the-project-table"]], "Optional vs. Required pyproject.toml file fields": [[25, "optional-vs-required-pyproject-toml-file-fields"]], "Other automation tools you\u2019ll see in the wild": [[31, null]], "Other ways you may see packages storing dependencies": [[22, null]], "Overview of the Translation Process": [[1, "overview-of-the-translation-process"]], "PDM": [[26, "pdm"]], "PDM Features": [[26, "pdm-features"]], "PDM support for C and C++ extensions": [[26, null]], "PDM vs. Poetry": [[26, null]], "Package Development": [[37, "package-development"]], "Package Publishing": [[37, "package-publishing"]], "Package tool features table": [[26, "package-tool-features-table"]], "Package-specific token vs trusted publisher": [[42, "package-specific-token-vs-trusted-publisher"]], "Packages are more than just code - Infrastructure": [[40, "packages-are-more-than-just-code-infrastructure"]], "Packages that you expect others to use should be well-scoped": [[40, "packages-that-you-expect-others-to-use-should-be-well-scoped"]], "Pin dependencies with caution": [[43, null]], "Poetry": [[26, "poetry"]], "Poetry features": [[26, "poetry-features"]], "Pre-commit hook example workflow": [[20, "pre-commit-hook-example-workflow"]], "Pre-commit.ci": [[20, "pre-commit-ci"]], "Preparing the Translation Files": [[1, "preparing-the-translation-files"]], "Prerequisites": [[44, "prerequisites"]], "Project metadata and PyPI": [[27, "project-metadata-and-pypi"]], "Provide a fully functional code snippet if possible": [[36, null]], "Publish a new version of your package to PyPI": [[43, "publish-a-new-version-of-your-package-to-pypi"]], "Publish your Python package that is on PyPI to conda-forge": [[41, null]], "Publish your Python package to PyPI": [[42, null]], "Publishing Your Package In A Community Repository: PyPI or Anaconda.org": [[24, null]], "Publishing a package to PyPI / Conda-Forge": [[40, "publishing-a-package-to-pypi-conda-forge"]], "Pull request template checklist tips": [[41, null]], "Pure Python Packages vs. packages with extensions in other languages": [[21, "pure-python-packages-vs-packages-with-extensions-in-other-languages"]], "Putting it all together - your completed pyproject.toml file": [[43, "putting-it-all-together-your-completed-pyproject-toml-file"]], "Python Package Code Style, Format and Linters": [[20, null]], "Python Package Dependencies": [[22, "python-package-dependencies"]], "Python Package Structure for Scientific Python Projects": [[28, null]], "Python Packaging Tools": [[26, null]], "Python Packaging for Scientists": [[19, "python-packaging-for-scientists"]], "Python Semantic Release Cons": [[29, "python-semantic-release-cons"]], "Python Semantic Release Pros": [[29, "python-semantic-release-pros"]], "Python modules and the __init__.py file": [[39, null]], "Python package API documentation": [[16, "python-package-api-documentation"]], "Python package build front-ends": [[26, "python-package-build-front-ends"]], "Python package structure information": [[23, null]], "Python packages and environments": [[40, "python-packages-and-environments"]], "Python packages are installable": [[40, "python-packages-are-installable"]], "Python packaging 101": [[40, null]], "Python packaging tools summary": [[26, "python-packaging-tools-summary"]], "README File Guidelines and Resources": [[14, null]], "README Resources": [[14, null]], "Read the Docs and Python packages": [[22, null]], "Read the Docs vs GitHub Pages": [[4, "read-the-docs-vs-github-pages"]], "Recursive dependencies": [[25, null]], "References": [[13, "references"]], "Referencing code in documentation": [[0, "referencing-code-in-documentation"]], "Release Sections": [[8, "release-sections"]], "Required (or core) dependencies": [[22, "required-or-core-dependencies"]], "Required fields for the [project] table": [[25, "required-fields-for-the-project-table"]], "Ruff": [[20, "ruff"]], "Run Python package tests": [[31, null]], "Run tests across Python versions with nox": [[31, "run-tests-across-python-versions-with-nox"]], "Run tests using pytest": [[31, "run-tests-using-pytest"]], "Run tests with Continuous Integration": [[33, null]], "Sample Directory Tree": [[44, "sample-directory-tree"]], "SemVer rules": [[29, "semver-rules"]], "Semantic release, vs version control based vs manual version bumping": [[29, "semantic-release-vs-version-control-based-vs-manual-version-bumping"]], "Setting up Your Local Environment": [[1, "setting-up-your-local-environment"]], "Setting up a git pre-commit hook": [[20, "setting-up-a-git-pre-commit-hook"]], "Setup 2-factor (2FA) authentication": [[42, null]], "Setup.py is still useful for complex package builds": [[25, null]], "Setuptools Features": [[26, "setuptools-features"]], "Sometimes tests are needed in a distribution": [[28, "sometimes-tests-are-needed-in-a-distribution"]], "Source Distribution (sdist)": [[27, "source-distribution-sdist"]], "Sphinx - a static site generator": [[5, "sphinx-a-static-site-generator"]], "Sphinx Gallery benefits": [[15, "sphinx-gallery-benefits"]], "Sphinx gallery challenges": [[15, "sphinx-gallery-challenges"]], "Sphinx sites can be customized using extensions and themes": [[5, "sphinx-sites-can-be-customized-using-extensions-and-themes"]], "Starting a New Language Translation": [[1, "starting-a-new-language-translation"]], "Step 0: Create a README file": [[36, "step-0-create-a-readme-file"]], "Step 1: Add Author, maintainer and project description": [[43, "step-1-add-author-maintainer-and-project-description"]], "Step 1: Add the name of your package as the README title": [[36, "step-1-add-the-name-of-your-package-as-the-readme-title"]], "Step 1: Create a Python package development environment": [[42, "step-1-create-a-python-package-development-environment"]], "Step 1: Install grayskull": [[41, "step-1-install-grayskull"]], "Step 1: Open and Edit Your config.toml File": [[38, "step-1-open-and-edit-your-config-toml-file"]], "Step 1: Set Up the Package Directory Structure": [[39, "step-1-set-up-the-package-directory-structure"]], "Step 2 - update your email and name": [[38, "step-2-update-your-email-and-name"]], "Step 2: Add README and license": [[43, "step-2-add-readme-and-license"]], "Step 2: Add module to your package": [[39, "step-2-add-module-to-your-package"]], "Step 2: Build your package\u2019s sdist and wheel distributions": [[42, "step-2-build-your-package-s-sdist-and-wheel-distributions"]], "Step 2: Fork and clone the conda-forge staged-recipes repository": [[41, "step-2-fork-and-clone-the-conda-forge-staged-recipes-repository"]], "Step 2: add badges to the top of your README file": [[36, "step-2-add-badges-to-the-top-of-your-readme-file"]], "Step 3": [[38, "step-3"]], "Step 3. Setup your TestPyPI account": [[42, "step-3-setup-your-testpypi-account"]], "Step 3: Add a description of what your package does": [[36, "step-3-add-a-description-of-what-your-package-does"]], "Step 3: Add code to your module": [[39, "step-3-add-code-to-your-module"]], "Step 3: Create your conda-forge recipe": [[41, "step-3-create-your-conda-forge-recipe"]], "Step 3: Specify Python version with requires-python": [[43, "step-3-specify-python-version-with-requires-python"]], "Step 3b: Bug fix - add a home url to the about: section": [[41, "step-3b-bug-fix-add-a-home-url-to-the-about-section"]], "Step 4. Create a package upload token": [[42, "step-4-create-a-package-upload-token"]], "Step 4: Add package installation instructions": [[36, "step-4-add-package-installation-instructions"]], "Step 4: Close the config file and run hatch config show": [[38, "step-4-close-the-config-file-and-run-hatch-config-show"]], "Step 4: Modify metadata in your pyproject.toml file": [[39, "step-4-modify-metadata-in-your-pyproject-toml-file"]], "Step 4: Specify Dependencies": [[43, "step-4-specify-dependencies"]], "Step 4: Submit a pull request to the staged-recipes repository": [[41, "step-4-submit-a-pull-request-to-the-staged-recipes-repository"]], "Step 4: tests for conda-forge": [[41, "step-4-tests-for-conda-forge"]], "Step 5: Add PyPI classifiers": [[43, "step-5-add-pypi-classifiers"]], "Step 5: Any additional setup": [[36, "step-5-any-additional-setup"]], "Step 5: Install your package locally": [[39, "step-5-install-your-package-locally"]], "Step 6: Add a get started section": [[36, "step-6-add-a-get-started-section"]], "Step 6: Add the [project.urls] table": [[43, "step-6-add-the-project-urls-table"]], "Step 6: Test out your new package": [[39, "step-6-test-out-your-new-package"]], "Step 7: Community section": [[36, "step-7-community-section"]], "Step 8: Citation information": [[36, "step-8-citation-information"]], "Step-by-Step Guide": [[44, "step-by-step-guide"]], "Submitting a PR for Your Contribution": [[1, "submitting-a-pr-for-your-contribution"]], "Submitting a pull request with your contribution": [[0, "submitting-a-pull-request-with-your-contribution"]], "Suggestions in this guide are not pyOpenSci review requirements": [[23, null]], "Summary": [[20, "summary"]], "Summary of tools Hatch vs. PDM vs. Poetry (and setuptools)": [[26, "summary-of-tools-hatch-vs-pdm-vs-poetry-and-setuptools"]], "Support conda users with environment.yml files": [[22, "support-conda-users-with-environment-yml-files"]], "Support for contributors and maintainers": [[40, null]], "TL;DR": [[0, "tl-dr"]], "Table: Testing & Automation Tool": [[31, "id3"]], "Take Aways": [[20, null], [24, null]], "Take-aways: If you can, publish on both PyPI and conda-forge to accommodate more users of your package": [[24, "take-aways-if-you-can-publish-on-both-pypi-and-conda-forge-to-accommodate-more-users-of-your-package"]], "Test Environments": [[31, "test-environments"]], "Test Types for Python packages": [[32, null]], "Test examples": [[34, null]], "TestPyPI vs PyPI": [[42, "testpypi-vs-pypi"]], "TestPyPI vs. PyPI": [[42, null]], "Tests": [[19, "tests"]], "Tests across operating systems": [[31, null]], "Tests and data for your Python package": [[30, null]], "Tests for user edge cases": [[34, "tests-for-user-edge-cases"]], "The CODE_OF_CONDUCT file - Python Packaging": [[9, null]], "The Release Process": [[1, "the-release-process"]], "The Review Process": [[1, "the-review-process"]], "The bare minimum needed in a pyproject.toml file": [[39, null]], "The elements of a Python package": [[40, "the-elements-of-a-python-package"]], "The finished README file": [[36, "the-finished-readme-file"]], "The src/ layout and testing": [[28, "the-src-layout-and-testing"]], "The value of end-to-end tools like hatch, flit and poetry": [[42, null]], "Three Python docstring formats and why we like NumPy style": [[16, "three-python-docstring-formats-and-why-we-like-numpy-style"]], "Three types of tests: Unit, Integration & Functional Tests": [[32, "three-types-of-tests-unit-integration-functional-tests"]], "Time to create your Python package!": [[39, "time-to-create-your-python-package"]], "Time to install your package": [[42, "time-to-install-your-package"]], "Todo": [[7, "id1"], [19, "id1"], [22, null], [22, "id4"], [25, "id1"], [31, "id1"], [31, "id2"], [32, "id1"], [33, "id1"], [38, "id1"], [39, "id1"], [39, "id7"], [39, "id8"], [40, "id1"], [42, "id1"], [42, "id3"], [42, "id4"], [43, "id2"]], "Too Much Of A Good Thing": [[14, null]], "Tool 1: Hatch and other build tools that offer incremental versioning": [[29, "tool-1-hatch-and-other-build-tools-that-offer-incremental-versioning"]], "Tool 2: Hatch_vcs & hatchling build back-end": [[29, "tool-2-hatch-vcs-hatchling-build-back-end"]], "Tool 3: setuptools-scm versioning using git tags": [[29, "tool-3-setuptools-scm-versioning-using-git-tags"]], "Tool 4: Python semantic release": [[29, "tool-4-python-semantic-release"]], "Tools for building your package": [[26, "tools-for-building-your-package"]], "Tools for bumping Python package versions": [[29, "tools-for-bumping-python-package-versions"]], "Tools that we review here": [[26, "tools-that-we-review-here"]], "Tools to Build and Host your Documentation": [[2, null]], "Tools to automate running your tests": [[31, "tools-to-automate-running-your-tests"]], "Tools to manage versions for your Python package": [[29, "tools-to-manage-versions-for-your-python-package"]], "Tools to run your tests": [[31, "tools-to-run-your-tests"]], "Translation Guide for the Python Packaging Guide": [[1, null]], "Two approaches to contributing": [[0, "two-approaches-to-contributing"]], "Two types of Python package users": [[7, "two-types-of-python-package-users"]], "Understanding optional vs. required dependencies": [[22, "understanding-optional-vs-required-dependencies"]], "Unit Tests": [[32, "unit-tests"]], "Unreleased Section": [[8, "unreleased-section"]], "Upload to TestPyPI using Hatch": [[42, "upload-to-testpypi-using-hatch"]], "Use a code format tool (or tools) to make your life easier": [[20, "use-a-code-format-tool-or-tools-to-make-your-life-easier"]], "Use a pyproject.toml file for your package configuration & metadata": [[25, null]], "Use open permissive licenses when possible": [[13, "use-open-permissive-licenses-when-possible"]], "Use pre-commit hooks to run code formatters and linters on commits": [[20, "use-pre-commit-hooks-to-run-code-formatters-and-linters-on-commits"]], "Using Hatch to Migrate setup.py to a pyproject.toml": [[44, null]], "Using Setuptools Back-end for Python Packaging with Build Front-end": [[26, "using-setuptools-back-end-for-python-packaging-with-build-front-end"]], "Using Sphinx to Build Python Package Documentation": [[5, null]], "Using doctest to run docstring examples in your package\u2019s methods and functions": [[16, "using-doctest-to-run-docstring-examples-in-your-package-s-methods-and-functions"]], "Using python -m pip install vs. pip install": [[22, null]], "Version control and storing your package on GitHub or GitLab": [[40, "version-control-and-storing-your-package-on-github-or-gitlab"]], "Versioning your Python package and semantic versioning": [[8, null]], "Versions and Environments": [[37, "versions-and-environments"]], "We do not suggest using setuptools": [[26, null]], "What a CONTRIBUTING.md file should contain": [[10, "what-a-contributing-md-file-should-contain"]], "What about software citation?": [[13, "what-about-software-citation"]], "What does it include?": [[8, "what-does-it-include"]], "What does it look like?": [[8, "what-does-it-look-like"]], "What does python -m pip install -e . do?": [[39, null]], "What does the flat layout structure look like?": [[28, "what-does-the-flat-layout-structure-look-like"]], "What happened to setup.py & how do i migrate to pyproject.toml?": [[25, null]], "What happened to setup.py and setup.cfg for metadata?": [[27, null]], "What happens when a string has changed in the original English text?": [[1, "what-happens-when-a-string-has-changed-in-the-original-english-text"]], "What happens when you submit a pull request (CI/CD)": [[0, "what-happens-when-you-submit-a-pull-request-ci-cd"]], "What happens when you use incorrect classifiers?": [[43, null]], "What is CHANGELOG.md?": [[8, "what-is-changelog-md"]], "What is GitHub Pages?": [[4, "what-is-github-pages"]], "What is Hatch?": [[44, "what-is-hatch"]], "What is PyPI": [[24, "what-is-pypi"]], "What is Read the Docs ?": [[4, "what-is-read-the-docs"]], "What is a Open Source License file?": [[13, "what-is-a-open-source-license-file"]], "What is a Python package?": [[40, "what-is-a-python-package"]], "What is a README file?": [[36, "what-is-a-readme-file"]], "What is a code of conduct file?": [[35, "what-is-a-code-of-conduct-file"]], "What is a docstring and how does it relate to documentation?": [[16, "what-is-a-docstring-and-how-does-it-relate-to-documentation"]], "What is a license?": [[35, "what-is-a-license"]], "What is a package dependency?": [[22, "what-is-a-package-dependency"]], "What is a pyproject.toml file?": [[39, "what-is-a-pyproject-toml-file"], [43, "what-is-a-pyproject-toml-file"]], "What is an API?": [[16, "what-is-an-api"]], "What is an __init__.py file?": [[39, "what-is-an-init-py-file"]], "What is building a Python package?": [[27, "what-is-building-a-python-package"]], "What is conda and Anaconda.org?": [[24, "what-is-conda-and-anaconda-org"]], "What is conda-forge?": [[41, "what-is-conda-forge"]], "What is the pyproject.toml used for?": [[43, "what-is-the-pyproject-toml-used-for"]], "What license should you use?": [[35, "what-license-should-you-use"]], "What pyOpenSci looks for in a package": [[40, null]], "What testing framework / package should I use to run tests?": [[31, "what-testing-framework-package-should-i-use-to-run-tests"]], "What the development guide for your Python package should contain": [[11, null]], "What to consider before you create a package": [[40, "what-to-consider-before-you-create-a-package"]], "What to expect from the review process": [[0, "what-to-expect-from-the-review-process"]], "What to put in your CODE_OF_CONDUCT file": [[35, "what-to-put-in-your-code-of-conduct-file"]], "What we previously covered": [[39, null]], "What you will learn here": [[23, "what-you-will-learn-here"]], "What your README.md file should contain": [[14, "what-your-readme-md-file-should-contain"]], "What\u2019s next": [[38, "what-s-next"]], "What\u2019s next in this Python package documentation section?": [[7, "what-s-next-in-this-python-package-documentation-section"]], "What\u2019s next?": [[40, "what-s-next"]], "Wheel (.whl files):": [[27, "wheel-whl-files"]], "When should you turn your code into a Python package?": [[40, "when-should-you-turn-your-code-into-a-python-package"]], "Where does conda fit in?": [[22, null]], "Where should the LICENSE file live": [[35, "where-should-the-license-file-live"]], "Where this guide is headed": [[19, "where-this-guide-is-headed"]], "Where to store your license": [[13, "where-to-store-your-license"]], "Who are these tutorials for?": [[40, "who-are-these-tutorials-for"]], "Who this guidebook is for": [[19, "who-this-guidebook-is-for"]], "Why a development guide is important": [[11, "why-a-development-guide-is-important"]], "Why create a Python package?": [[40, "why-create-a-python-package"]], "Why create package-specific tokens?": [[42, null]], "Why is it important?": [[8, "why-is-it-important"]], "Why licenses are important": [[13, "why-licenses-are-important"]], "Why most scientific Python packages do not use source": [[28, null]], "Why publish to conda-forge": [[41, "why-publish-to-conda-forge"]], "Why the pyproject.toml file is important": [[39, null]], "Why use type hints": [[16, "why-use-type-hints"]], "Why write tests for your package?": [[34, "why-write-tests-for-your-package"]], "Why you might not want to use Flit": [[26, "why-you-might-not-want-to-use-flit"]], "Why you might not want to use Hatch": [[26, "why-you-might-not-want-to-use-hatch"]], "Why you need a CODE_OF_CONDUCT": [[9, "why-you-need-a-code-of-conduct"]], "Working on a Translation": [[1, "working-on-a-translation"]], "Write tests for your Python package": [[34, null]], "Write usable documentation": [[17, "write-usable-documentation"]], "Writing user-facing documentation for your Python package": [[18, null]], "Yay, your package has users! Now what?": [[40, "yay-your-package-has-users-now-what"]], "You have published your package to TestPyPI!": [[42, "you-have-published-your-package-to-testpypi"]], "conda channels": [[24, "conda-channels"]], "conda channels, PyPI, conda, pip - Where to publish your package": [[24, "conda-channels-pypi-conda-pip-where-to-publish-your-package"]], "conda-forge staged recipes and CI failures": [[41, null]], "hatch_vcs Cons": [[29, "hatch-vcs-cons"]], "hatch_vcs Pros": [[29, "hatch-vcs-pros"]], "nbsphinx - tutorials using Jupyter Notebooks": [[15, "nbsphinx-tutorials-using-jupyter-notebooks"]], "new Tutorial Series: Create a Python Package": [[19, "new-tutorial-series-create-a-python-package"]], "pyOpenSci Python Package Guide": [[19, null]], "pyOpenSci will never require a specific package structure for peer review": [[28, null]], "setuptools_scm Cons": [[29, "setuptools-scm-cons"]], "sphinx gallery:": [[15, "sphinx-gallery"]], "sphinx-sitemap for search engine optimization": [[6, "sphinx-sitemap-for-search-engine-optimization"]], "sphinxext.opengraph": [[6, "sphinxext-opengraph"]], "\u2714\ufe0f A Community Section with Links to Contributing Guide, Code of Conduct": [[14, "a-community-section-with-links-to-contributing-guide-code-of-conduct"]], "\u2714\ufe0f A short, easy-to-understand description of what your package does": [[14, "a-short-easy-to-understand-description-of-what-your-package-does"]], "\u2714\ufe0f Badges for current package version, continuous integration and test coverage": [[14, "badges-for-current-package-version-continuous-integration-and-test-coverage"]], "\u2714\ufe0f Brief demonstration of how to use the package": [[14, "brief-demonstration-of-how-to-use-the-package"]], "\u2714\ufe0f Citation information": [[14, "citation-information"]], "\u2714\ufe0f Descriptive links to package documentation, short tutorials": [[14, "descriptive-links-to-package-documentation-short-tutorials"]], "\u2714\ufe0f Document any additional setup required": [[14, "document-any-additional-setup-required"]], "\u2714\ufe0f Installation instructions": [[14, "installation-instructions"]], "\u2714\ufe0f Your package\u2019s name": [[14, "your-package-s-name"]]}, "docnames": ["CONTRIBUTING", "TRANSLATING", "documentation/hosting-tools/intro", "documentation/hosting-tools/myst-markdown-rst-doc-syntax", "documentation/hosting-tools/publish-documentation-online", "documentation/hosting-tools/sphinx-python-package-documentation-tools", "documentation/hosting-tools/website-hosting-optimizing-your-docs", "documentation/index", "documentation/repository-files/changelog-file", "documentation/repository-files/code-of-conduct-file", "documentation/repository-files/contributing-file", "documentation/repository-files/development-guide", "documentation/repository-files/intro", "documentation/repository-files/license-files", "documentation/repository-files/readme-file-best-practices", "documentation/write-user-documentation/create-package-tutorials", "documentation/write-user-documentation/document-your-code-api-docstrings", "documentation/write-user-documentation/get-started", "documentation/write-user-documentation/intro", "index", "package-structure-code/code-style-linting-format", "package-structure-code/complex-python-package-builds", "package-structure-code/declare-dependencies", "package-structure-code/intro", "package-structure-code/publish-python-package-pypi-conda", "package-structure-code/pyproject-toml-python-package-metadata", "package-structure-code/python-package-build-tools", "package-structure-code/python-package-distribution-files-sdist-wheel", "package-structure-code/python-package-structure", "package-structure-code/python-package-versions", "tests/index", "tests/run-tests", "tests/test-types", "tests/tests-ci", "tests/write-tests", "tutorials/add-license-coc", "tutorials/add-readme", "tutorials/command-line-reference", "tutorials/get-to-know-hatch", "tutorials/installable-code", "tutorials/intro", "tutorials/publish-conda-forge", "tutorials/publish-pypi", "tutorials/pyproject-toml", "tutorials/setup-py-to-pyproject-toml"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinxcontrib.bibtex": 9}, "filenames": ["CONTRIBUTING.md", "TRANSLATING.md", "documentation/hosting-tools/intro.md", "documentation/hosting-tools/myst-markdown-rst-doc-syntax.md", "documentation/hosting-tools/publish-documentation-online.md", "documentation/hosting-tools/sphinx-python-package-documentation-tools.md", "documentation/hosting-tools/website-hosting-optimizing-your-docs.md", "documentation/index.md", "documentation/repository-files/changelog-file.md", "documentation/repository-files/code-of-conduct-file.md", "documentation/repository-files/contributing-file.md", "documentation/repository-files/development-guide.md", "documentation/repository-files/intro.md", "documentation/repository-files/license-files.md", "documentation/repository-files/readme-file-best-practices.md", "documentation/write-user-documentation/create-package-tutorials.md", "documentation/write-user-documentation/document-your-code-api-docstrings.md", "documentation/write-user-documentation/get-started.md", "documentation/write-user-documentation/intro.md", "index.md", "package-structure-code/code-style-linting-format.md", "package-structure-code/complex-python-package-builds.md", "package-structure-code/declare-dependencies.md", "package-structure-code/intro.md", "package-structure-code/publish-python-package-pypi-conda.md", "package-structure-code/pyproject-toml-python-package-metadata.md", "package-structure-code/python-package-build-tools.md", "package-structure-code/python-package-distribution-files-sdist-wheel.md", "package-structure-code/python-package-structure.md", "package-structure-code/python-package-versions.md", "tests/index.md", "tests/run-tests.md", "tests/test-types.md", "tests/tests-ci.md", "tests/write-tests.md", "tutorials/add-license-coc.md", "tutorials/add-readme.md", "tutorials/command-line-reference.md", "tutorials/get-to-know-hatch.md", "tutorials/installable-code.md", "tutorials/intro.md", "tutorials/publish-conda-forge.md", "tutorials/publish-pypi.md", "tutorials/pyproject-toml.md", "tutorials/setup-py-to-pyproject-toml.md"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [1, 3, 4, 5, 8, 9, 10, 11, 13, 15, 17, 18, 20, 21, 22, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 39, 41, 43, 44], "0": [1, 8, 20, 22, 26, 27, 29, 31, 32, 34, 39, 41, 42, 43], "00": 41, "000": [26, 28], "001": 34, "01": [13, 32], "01e31f5521973710d0d91b15a94491d4f8f8f54566322110098c0f2381dd09ab": 41, "02": 13, "03": 13, "07": 8, "08": [8, 43], "09": 13, "1": [0, 1, 8, 13, 14, 15, 16, 20, 22, 23, 25, 26, 27, 31, 34, 35], "10": [20, 27, 31, 33, 36, 39, 43], "100": [32, 41], "105": 16, "106": 22, "11": [20, 27, 28, 31, 33, 39, 43], "115": 36, "12": [20, 31, 39], "155": 1, "1580827": 16, "16": 42, "1766663571": 22, "18": 41, "1844278487": 22, "19": 8, "2": [0, 1, 13, 14, 15, 16, 22, 23, 25, 26, 27, 34, 35], "20": 20, "2009": 26, "2015": 13, "2016": 13, "2017": 25, "2019": 13, "2020": 29, "2021": [8, 39], "2022": [7, 12, 13, 14], "2023": [13, 42, 43], "2024": [13, 42], "212": 32, "22": 20, "23": [7, 12, 14, 39, 42], "24": [8, 39], "254": 1, "26": 42, "29": 20, "2i2c": 42, "3": [0, 1, 7, 13, 14, 16, 20, 22, 23, 25, 26, 27, 28, 31, 33, 34, 35], "32": 32, "34": 20, "38": 1, "39": 20, "3vljpqb55psbgb1ghc2qsn700000gn": 41, "4": [13, 14, 16, 17, 20, 23, 27, 31, 34], "40": [16, 32], "400": 28, "43": 42, "430": 1, "43ec82da3a10752a5dbf2f0ef742e357803a3ddb400005f87e86534685bfb8a7": 41, "44": 1, "440": 29, "442": 20, "443": 20, "493": 20, "4935937": 16, "496": 20, "5": [1, 20, 23, 32, 34, 40], "5281": 36, "6": [7, 16, 20, 23], "61": 25, "7": [7, 39, 43], "75": 1, "79": 20, "8": [7, 20, 26, 29, 39, 41, 42], "80": 20, "8000": 1, "82": 20, "8365068": 36, "84": 1, "88": [1, 20], "885": 1, "9": [26, 29, 31, 32, 33, 38, 39], "90": 20, "95": 20, "950": 1, "97": 41, "999": 34, "A": [1, 5, 7, 8, 10, 11, 13, 15, 16, 17, 20, 21, 23, 25, 26, 27, 31, 32, 34, 35, 36, 38, 39, 40, 41, 43], "And": [0, 6, 15, 16, 20, 22, 23, 24, 26, 27, 41, 42, 43], "As": [0, 7, 16, 20, 21, 25, 26, 27, 28, 29, 34, 36, 38, 39, 40, 42, 43, 44], "At": [8, 14, 34, 36, 39, 40, 41, 42, 43], "BE": 43, "BY": 13, "Be": [28, 35, 36, 40, 41, 42], "Being": 29, "But": [1, 7, 22, 26, 27, 29, 32, 40, 42], "By": [8, 15, 16, 20, 26, 28, 31, 34, 35, 40, 42], "For": [1, 3, 15, 16, 19, 20, 21, 25, 26, 27, 28, 29, 31, 32, 34, 36, 39, 40, 41, 42, 43], "If": [0, 1, 3, 4, 6, 7, 9, 11, 13, 14, 15, 16, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 39, 40, 41, 43, 44], "In": [0, 1, 2, 7, 9, 12, 13, 14, 16, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 39, 40, 41, 42, 43, 44], "It": [0, 2, 3, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 35, 36, 38, 39, 40, 41, 42, 43, 44], "Its": 26, "NOT": [20, 26, 28], "No": [23, 26], "Not": [22, 29], "OR": 42, "On": [0, 5, 15, 22, 24, 27, 31, 42], "One": [13, 25, 29, 39, 43], "Or": [0, 7, 17, 22, 24, 31, 36, 40], "TO": 22, "That": [32, 35, 41, 43], "The": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 22, 23, 24, 25, 26, 27, 29, 31, 32, 33, 35, 37, 41, 43, 44], "Then": [25, 36, 38, 40, 42, 43], "There": [0, 1, 3, 14, 15, 16, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 40, 41, 42, 43], "These": [0, 1, 7, 9, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 35, 37, 39, 40, 42, 43], "To": [0, 1, 13, 15, 16, 17, 19, 20, 22, 23, 24, 25, 26, 27, 29, 31, 33, 35, 36, 38, 39, 40, 41, 42, 43], "Will": 31, "With": [29, 31, 40], "_": 39, "__about__": 39, "__init__": [27, 28, 44], "__pypackages__": 26, "__token__": 42, "_build": [0, 1, 15], "_compat": 13, "_gplv3": 13, "_version": [27, 29], "_version_gener": 27, "ab": 32, "abil": 23, "abl": [1, 7, 25, 27, 29, 31, 33, 34, 40], "about": [0, 1, 2, 3, 7, 8, 10, 15, 16, 17, 18, 20, 21, 22, 23, 24, 30, 31, 32, 33, 35, 36, 40, 44], "abov": [3, 11, 12, 14, 16, 17, 20, 22, 25, 26, 27, 28, 29, 31, 32, 35, 36, 38, 39, 40, 41, 42, 43], "absolut": 43, "abunchofrandomcharactersher": 42, "acc": 8, "acceler": 8, "accept": [8, 14, 23, 36, 39, 40, 41, 43], "access": [1, 8, 14, 17, 24, 27, 28, 29, 31, 36, 39, 40, 42], "accident": [34, 42], "accommod": 35, "accompani": 28, "accord": 26, "account": [1, 4, 37], "accur": [1, 19, 44], "acknowledg": [8, 41], "across": [0, 8, 16, 20, 23, 24, 26, 27, 28, 30, 32, 33, 38, 40, 41], "act": [15, 23, 34], "action": [0, 1, 20, 29, 30, 31, 32, 34, 41, 42], "activ": [0, 1, 19, 20, 22, 26, 28, 29, 31, 37, 39, 40, 41, 42, 43], "actual": 1, "ad": [0, 1, 8, 14, 15, 17, 18, 19, 20, 24, 25, 26, 28, 34, 35, 36, 37, 39, 43], "adapt": [1, 13, 27, 34], "add": [0, 1, 3, 5, 6, 8, 13, 14, 15, 16, 19, 20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 33, 34, 37, 40, 42], "add_convers": 29, "add_m": 16, "add_num": [36, 39], "add_numb": [16, 34, 36, 39], "addit": [1, 8, 15, 16, 17, 20, 21, 23, 25, 26, 27, 29, 31, 39, 41, 43, 44], "address": [26, 34, 40, 42], "adher": [8, 20, 26, 43], "adjust": [20, 28], "admin": 43, "admonit": 39, "adopt": [1, 8, 9, 13, 23, 26, 29, 35], "advanc": [14, 22, 26, 41, 43], "advantag": [28, 32], "affect": 34, "after": [0, 1, 8, 20, 29, 36, 37, 38, 39, 40, 41, 42, 43], "again": [42, 43], "against": 28, "ago": 24, "agre": 35, "ahead": 0, "aid": 31, "aim": [20, 40, 41], "align": [23, 25, 26, 42], "alik": [8, 13], "all": [0, 1, 7, 8, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42], "allow": [0, 3, 4, 6, 11, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31, 33, 35, 36, 38, 39, 40, 41, 42, 43], "almost": 0, "alon": [16, 23], "along": [16, 21, 39], "alongsid": [1, 22], "alpha": 43, "alreadi": [0, 1, 3, 21, 26, 27, 28, 31, 35, 36, 38, 39, 41, 42, 44], "also": [0, 1, 2, 4, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 38, 39, 41, 42, 43], "alter": 34, "altern": [0, 21, 22, 36, 42], "alwai": [7, 8, 20, 25, 28, 29, 36, 39, 43], "among": 12, "amount": 20, "amplia": 1, "an": [0, 1, 3, 6, 7, 8, 11, 12, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 36, 38, 41, 42, 43], "anaconda": [14, 28, 41], "analys": 40, "analyz": 31, "ani": [0, 1, 3, 8, 10, 11, 13, 17, 20, 22, 24, 26, 27, 29, 31, 35, 38, 39, 40, 41, 42, 43, 44], "anim": 40, "annot": 40, "anoth": [0, 1, 4, 8, 12, 14, 15, 16, 21, 22, 24, 26, 32, 38, 40, 41], "another_tutori": 15, "answer": [24, 40], "anticip": 24, "anum": 16, "anum2": 16, "anyon": [19, 23, 24, 27, 41, 42, 43], "anyth": 22, "anywher": [29, 42], "apach": [13, 43], "api": [5, 15, 17, 18, 25, 29, 37, 42, 43], "apitoken": 42, "app": 26, "appear": [14, 25], "append": 0, "appendix": 43, "appli": [5, 14, 16, 20, 29, 41], "applic": [7, 14, 22, 32, 36, 38, 40, 42, 43], "appreci": [8, 26, 28], "approach": [1, 11, 19, 22, 23, 26, 28, 29, 31, 38, 43], "appropri": [1, 14], "approv": [0, 13, 24, 25, 27, 40, 41, 43], "approx": 32, "apt": 38, "ar": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43], "architectur": [27, 41], "area": 0, "aren": [20, 28, 39, 41], "argument": [1, 16, 26], "around": [1, 6, 9, 14, 19, 20, 23, 24, 29, 40, 43], "arrai": [16, 22, 25, 27, 34, 43], "arrow": 39, "art": [14, 30], "asegurar": 1, "ask": [0, 10, 14, 17, 26, 35, 40, 42], "assert": [32, 34], "assign": [1, 29, 43], "associ": [8, 14, 22, 25, 26, 29, 36, 39, 40, 41, 42, 43], "assum": [22, 29, 31, 40], "assur": [14, 16], "athlet": 29, "attempt": 41, "attent": 14, "attribut": [8, 13, 15, 16, 17, 18, 27, 29, 32, 34], "attribute_warn": 29, "at\u00edpico": 1, "audienc": [17, 25, 27, 36, 39, 40, 43], "august": 25, "auth_respond": 27, "authent": [14, 36], "author": [20, 22, 23, 25, 27, 39], "auto": [20, 26], "autobuild": 1, "autodoc": [5, 16, 18], "autoformat": 20, "autom": [1, 4, 20, 22, 29, 30, 37, 39, 40, 41, 42], "automag": [18, 20, 29, 35], "automat": [0, 1, 5, 13, 16, 20, 22, 27, 29, 31, 34, 39, 40, 42, 44], "autoupdate_schedul": 20, "avail": [0, 1, 12, 13, 14, 19, 20, 22, 23, 24, 26, 29, 38, 40, 41], "averag": 32, "avoid": [1, 8, 13, 14, 20, 22, 24, 36], "awai": 6, "awar": [8, 13, 26, 43], "awkward": 28, "b": [0, 34, 39, 41], "back": [25, 27, 36, 38, 39, 40, 42, 43], "backbon": 8, "backend": [25, 26, 27, 29, 31, 39, 40, 43], "background": [7, 14], "backup": 42, "backward": [26, 29], "bane": 14, "bare": [23, 43], "barrier": 16, "base": [5, 6, 7, 8, 11, 15, 16, 20, 23, 25, 26, 31, 32, 33, 34, 39, 40, 41, 43, 44], "baselin": [37, 40], "bash": [22, 33, 39, 41], "basic": [22, 26, 35, 40, 41], "beauti": [5, 22], "becaus": [1, 3, 8, 13, 16, 20, 21, 22, 24, 25, 26, 27, 29, 30, 31, 34, 35, 38, 39, 40, 41, 42, 43], "becom": [1, 20, 29, 34, 40, 42, 44], "been": [1, 8, 14, 20, 25, 26, 27, 28, 29, 34, 36, 37, 39, 41], "befor": [1, 14, 16, 20, 23, 28, 32, 34, 36, 38, 41, 42, 43], "begin": [1, 14, 15, 19, 20, 23, 26, 32, 36, 38, 39, 40, 41, 44], "beginn": [0, 1, 19, 26, 28, 38, 40], "behav": [32, 34], "behavior": [9, 26, 32, 34, 35], "behind": [8, 20, 42], "being": [0, 16, 22, 23, 26, 36, 39, 41, 43], "belong": [20, 27, 42], "below": [1, 4, 7, 8, 12, 13, 14, 15, 16, 17, 20, 21, 22, 24, 25, 26, 27, 28, 29, 31, 33, 34, 36, 38, 39, 40, 41, 43], "benefit": [0, 20, 26, 39], "besid": 40, "best": [0, 7, 18, 19, 20, 23, 24, 25, 26, 28, 40], "beta": [27, 39, 43], "better": [14, 19, 25, 26, 29, 40, 43], "between": [13, 24, 26, 40, 43], "bewar": [14, 26], "beyond": [0, 20, 40], "biggest": 24, "bin": [0, 1, 42], "binari": 27, "bind": [13, 21], "bioacoust": 40, "bioconda": [24, 41], "biomed": 24, "bit": [4, 32, 38, 39, 41], "black": [22, 23, 25, 40, 43], "block": [0, 3, 20], "blog": [13, 25, 35, 40], "blogpost": 41, "blue": 23, "boil": 32, "bokeh": 28, "bold": 1, "bone": 43, "book": [0, 5, 6], "bool": 0, "borrow": 13, "bot": [20, 29, 41], "both": [1, 3, 7, 8, 12, 13, 14, 15, 16, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43], "bottom": [0, 14, 15, 25, 39, 41], "bound": [16, 26, 43], "boundari": [34, 43], "box": 42, "bracket": [22, 39, 43], "brain": 20, "branch": [1, 4, 33, 35, 39, 41], "branch_or_tag": [37, 39], "break": [0, 8, 17, 26, 29, 32, 34, 39, 40, 41], "breakout": 26, "breakpoint": 31, "brief": 16, "briefli": [36, 43], "bring": 32, "broad": [7, 17, 22, 24, 35, 39, 40], "broader": [14, 17, 19, 26, 40], "broadli": [17, 20, 24, 40], "broke": 34, "broken": [32, 36], "brought": 0, "brows": [14, 43], "browser": [0, 1, 38, 42], "bsd": [0, 13, 25, 35, 38, 41], "bsd3": 43, "bu": 26, "bucket": 37, "bug": [0, 7, 8, 9, 29, 34, 40, 43], "build": [4, 7, 8, 11, 14, 16, 19, 22, 23, 24, 28, 31, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44], "build_edit": 39, "build_exampl": 15, "build_meta": 25, "built": [0, 1, 6, 20, 24, 25, 26, 27, 29, 31, 32, 39, 41, 42, 43], "built_exampl": 15, "bump": [26, 37], "bump2vers": 29, "bunch": [16, 32, 42], "bundl": [24, 27, 41], "burden": [26, 28], "busi": 13, "button": [0, 34, 42], "c": [20, 21, 23, 24, 36, 37, 41], "c90": [20, 25], "cach": [38, 42], "cada": 1, "calc_annual_mean": 32, "calcul": [1, 16, 32, 34], "call": [0, 1, 3, 10, 16, 20, 21, 22, 24, 25, 27, 29, 31, 35, 39, 40, 41, 42], "calver": [23, 26, 29], "came": 26, "can": [0, 2, 3, 4, 6, 7, 8, 9, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44], "cancel": 20, "cannot": 42, "capabl": [21, 31], "captur": 42, "card": 17, "care": [0, 13, 20, 27], "carefulli": 43, "carpentri": [34, 39], "case": [0, 1, 7, 11, 13, 15, 16, 17, 20, 21, 22, 25, 26, 27, 28, 29, 32, 36, 38, 39, 40, 41, 42, 43], "caso": 1, "catalog": 1, "catch": [32, 34], "categori": [1, 8, 13, 21, 25, 27, 31, 43], "caus": [25, 27, 43], "caution": [13, 26], "cautiou": [43, 44], "caveat": 39, "cc": 13, "cd": [1, 39, 40, 41], "celsiu": 32, "celsius_to_fahrenheit": 32, "central": 8, "cerca": 1, "certain": [1, 32, 40, 44], "cfep": 41, "cff": 13, "cfg": [22, 25, 38, 39], "chagelog": 8, "challeng": [9, 31, 35, 43], "chanc": 24, "chang": [7, 8, 11, 19, 20, 21, 26, 28, 29, 33, 34, 40, 41, 43, 44], "changelog": [27, 28], "channel": [1, 23, 27, 41, 42, 43], "chapter": [28, 29], "charact": [1, 20, 39, 42], "characterist": 28, "cheatsheet": 43, "check": [0, 1, 7, 13, 15, 16, 23, 24, 26, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44], "checker": 43, "checklist": [14, 32], "checkout": [0, 33, 41], "chief": 14, "choic": [1, 21, 26, 29, 31, 43], "choos": [0, 1, 16, 25, 35, 39, 43], "choosealicens": [13, 35, 38], "chose": [3, 6, 20, 21, 22, 38], "chosen": [21, 29, 35, 39], "ci": [1, 19, 29, 30, 31, 32, 34, 38, 40], "cient\u00edfico": 1, "circleci": 0, "circumst": 1, "cite": [7, 13, 14, 36], "clarif": 1, "clarifi": [7, 19], "class": [0, 5, 8, 15, 16, 17, 18, 32, 34, 40], "classifi": [0, 21, 25, 27], "claus": [13, 35, 41], "clean": [16, 20, 24, 26, 31, 39], "cleaner": 29, "cleanup": 22, "clear": [0, 8, 25, 26, 28, 34, 36, 39, 43], "clearli": [11, 14, 36], "cli": [43, 44], "click": [0, 1, 16, 24, 25, 26, 28, 38, 41, 42, 43], "client": 27, "clone": 1, "close": [6, 20, 29, 34, 35, 42], "closer": [1, 34], "cloud": [33, 40], "cloudflar": 6, "coc": 19, "code": [1, 5, 7, 9, 10, 11, 12, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 38, 41, 42, 43, 44], "code_of_conduct": [7, 27, 28, 36, 43], "codebas": [22, 40], "codecov": [31, 33], "codo": 20, "cofig": 20, "collabor": [19, 34, 42], "collect": [6, 14, 32, 40], "color": 3, "column": [8, 15], "com": [0, 8, 13, 20, 22, 32, 35, 36, 37, 38, 39, 41, 43], "combin": [3, 15], "come": [0, 8, 22, 26, 28, 31, 36, 39, 42, 43], "comer": 20, "comfort": [0, 3, 9], "comma": [20, 43], "command": [0, 1, 16, 19, 20, 21, 22, 25, 26, 29, 31, 32, 38, 39, 40, 41, 42, 44], "command_descript": 37, "comment": [0, 1, 20, 22, 41, 43], "commerci": 13, "commit": [8, 22, 26, 29, 39], "common": [2, 5, 8, 13, 14, 22, 23, 26, 27, 31, 36, 39, 43], "commonli": [3, 4, 7, 8, 20, 26, 27, 28, 29, 31, 35, 41], "commun": [0, 1, 5, 6, 7, 8, 9, 12, 13, 17, 23, 26, 28, 35, 38, 39, 40, 41, 43], "compani": [12, 24, 41], "compar": [26, 34, 38, 43], "comparison": 26, "compat": [7, 13, 21, 26, 29, 43], "compatibli": 26, "compendia": 40, "compendium": 40, "compil": [1, 21, 26, 27, 28, 38], "complement": [20, 24, 32], "complementari": [14, 32], "complet": [0, 19, 24, 26, 32, 35, 37, 38, 39, 41, 42], "complex": [1, 14, 16, 20, 23, 24, 26, 27, 28, 33, 38, 41], "compli": 13, "complianc": 6, "compliant": 6, "complic": 14, "compon": [6, 8, 21, 32, 35, 40], "comprehens": [22, 32, 40], "comprens": 1, "compress": 27, "comput": [1, 13, 20, 22, 27, 31, 38, 39, 40, 41, 42], "comunidad": 1, "con": [1, 15], "concaten": 1, "concern": 40, "concis": [0, 8, 40], "conda": [19, 20, 23, 26, 27, 36, 37, 38, 39, 42], "conda_instal": 31, "conduct": [9, 10, 12, 19, 40, 41], "conf": [6, 15, 16], "confid": [31, 34, 42], "config": [20, 37], "configur": [1, 15, 20, 23, 26, 27, 28, 29, 39, 43, 44], "confirm": 41, "conflict": [20, 22, 41], "conftest": 27, "confus": [23, 26, 27], "conjunto": 1, "connect": [32, 41], "conocimiento": 1, "consent": 6, "consid": [1, 7, 9, 11, 13, 14, 16, 17, 18, 22, 23, 24, 25, 26, 28, 29, 31, 32, 36, 43], "consider": 40, "consist": [0, 1, 8, 16, 20, 23, 24, 26, 27, 29, 34, 39, 40], "consol": 39, "constraint": [26, 34], "construct": 15, "consum": [13, 20], "contain": [1, 13, 16, 22, 24, 25, 27, 28, 29, 31, 35, 39, 40, 42, 43], "content": [0, 1, 6, 7, 8, 14, 19, 27, 29, 35, 36, 37, 38, 39, 40, 44], "context": [1, 8, 14, 16], "continu": [0, 1, 4, 8, 11, 22, 24, 30, 31, 32, 34, 35, 41, 42, 43], "contrast": 16, "contribut": [3, 7, 8, 9, 11, 13, 16, 17, 20, 22, 25, 27, 28, 33, 34, 36, 40], "contributing_exampl": 0, "contributor": [0, 1, 8, 9, 11, 14, 15, 16, 19, 20, 22, 25, 26, 29, 30, 33, 34, 35, 36, 43], "control": [25, 26], "conveni": [31, 44], "convent": [8, 27, 29, 35, 39], "convers": [16, 29, 35], "convert": [16, 27, 32, 38], "coordin": [1, 16, 20], "copi": [0, 13, 35, 36, 39, 41, 42], "copyright": 39, "core": [3, 6, 16, 19, 20, 21, 23, 24, 25, 26, 27, 32, 35, 36, 39, 40, 43], "corner": [0, 16], "corpor": 43, "correct": [0, 16, 21, 25, 26, 27, 32, 34, 35, 38, 39, 40, 43, 44], "correctli": [0, 1, 20, 24, 26, 28, 32, 34, 42], "correspond": [1, 37], "cost": 28, "could": [0, 1, 7, 20, 26, 27, 29, 31, 32, 34, 36, 40, 41, 42], "council": 13, "cours": [7, 38], "cov": [22, 25, 31], "coven": [9, 35], "cover": [7, 11, 13, 15, 18, 25, 31, 36, 37, 41], "coverag": [0, 31, 33], "cpython": 39, "creat": [1, 4, 5, 8, 9, 11, 13, 14, 16, 18, 20, 21, 23, 24, 25, 26, 28, 31, 32, 33, 35, 37, 38, 43, 44], "creation": [26, 37], "creativ": 13, "creativecommon": 13, "credenti": 42, "credit": [7, 39], "criteria": 14, "critic": [1, 13, 26, 35, 36], "crop": 16, "cross": [24, 36], "crowsetta": 40, "crucial": 44, "csv": 8, "cultur": 13, "curat": 19, "current": [2, 5, 6, 22, 23, 26, 27, 28, 29, 31, 36, 37, 39, 41, 42, 43], "currentus": 37, "custom": [3, 4, 13, 21, 26, 38, 44], "customiz": 26, "c\u00e1lculo": 1, "d": [7, 10, 14, 19, 20, 25, 26, 31, 32, 38, 39, 40], "dai": [15, 29, 41], "daili": 20, "danger": 28, "daniel": 43, "dash": [39, 42], "data": [6, 7, 15, 16, 22, 24, 26, 27, 32, 35, 38, 39, 40], "databas": 41, "datafram": [8, 34], "date": [1, 8, 23, 26, 29, 40], "dateutil": 42, "de": 1, "deal": 28, "debug": 16, "decid": [1, 23, 24, 26, 38, 40, 41, 43], "decis": [19, 20, 21, 29, 39], "declar": [19, 20, 25, 26, 31, 39, 41, 42, 43], "decor": 31, "def": [0, 16, 31, 32, 34, 39], "default": [0, 3, 15, 20, 21, 22, 24, 26, 28, 31, 33, 38, 39, 41, 42, 43], "defin": [1, 16, 17, 22, 25, 27, 31, 36, 39, 40, 43, 44], "definit": [0, 7, 16, 20], "degre": 32, "del": 1, "delet": [39, 42, 43, 44], "deliv": 32, "demand": 20, "demo": [36, 43], "demonstr": [8, 36], "denot": [36, 39], "dep": [22, 41], "dep1": 22, "dep2": 22, "depend": [1, 7, 8, 13, 19, 20, 21, 27, 28, 29, 31, 33, 37, 39, 40, 41, 42, 44], "dependency_group": 37, "dependency_link": 27, "deploi": [4, 42], "deploy": [4, 22], "deprec": [8, 29], "depth": 43, "deriv": 13, "desarrollador": 1, "describ": [0, 13, 16, 17, 23, 25, 27, 29, 36, 39, 43], "descript": [0, 1, 8, 16, 25, 29, 37, 39], "design": [13, 14, 16, 31, 36, 40, 43, 44], "desir": 21, "detail": [0, 1, 7, 8, 17, 20, 24, 26, 28, 29, 35, 38, 41], "determin": [25, 29, 43], "dev": [0, 1, 20, 22, 25, 31, 42], "dev_url": 41, "develop": [1, 6, 7, 8, 10, 14, 16, 17, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 36, 39, 40, 43], "deviat": 43, "devic": [8, 42], "df": 32, "diagram": [23, 26], "dictionari": [16, 43], "did": [0, 22, 24, 32, 39], "didn": 32, "differ": [0, 1, 13, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 40, 41, 42, 43], "difficult": [7, 16, 21, 24, 26, 31], "dig": 16, "dir": [15, 38], "direct": [0, 14, 17, 35, 40], "directli": [0, 1, 20, 22, 24, 25, 26, 27, 28, 35, 38, 39, 40, 42], "directori": [0, 1, 8, 15, 20, 26, 27, 28, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43], "disadvantag": 32, "discord": [1, 26], "discourag": [28, 36], "discours": [6, 19, 21], "discov": [7, 20, 26, 35], "discuss": [5, 7, 11, 13, 16, 17, 20, 21, 22, 24, 26, 27, 28, 29, 31, 35, 38, 42, 43], "displai": [0, 27], "dist": [26, 27, 42], "distanc": 0, "distinct": 13, "distinguish": 20, "distribut": [20, 21, 22, 24, 25, 26, 31, 37, 39, 40, 41, 43, 44], "distutil": 41, "dive": [20, 40], "diverg": 43, "divers": [1, 19, 23], "diverso": 1, "divid": [13, 40], "do": [0, 4, 6, 13, 14, 16, 17, 20, 21, 24, 27, 29, 31, 32, 35, 37, 38, 40, 41, 42, 43], "doc": [0, 1, 13, 14, 16, 19, 25, 26, 28, 31, 39, 42], "docstr": [5, 11, 17, 20, 39, 40], "doctest": 5, "document": [8, 9, 11, 13, 22, 23, 25, 26, 27, 28, 29, 31, 32, 33, 34, 36, 38, 39, 41, 43], "doe": [0, 1, 6, 15, 20, 21, 26, 27, 29, 32, 34, 41, 42, 43, 44], "doesn": [0, 14, 20, 24, 26, 27, 35, 39, 40, 41, 42], "doi": [13, 14, 36], "domain": [26, 38, 40], "don": [1, 4, 7, 14, 16, 20, 22, 26, 31, 32, 34, 35, 36, 38, 39, 40, 41, 42, 43], "done": [0, 1, 7, 20, 21, 35, 39, 42], "doubl": [20, 22, 38], "down": [0, 16, 26, 28, 39, 41, 42, 43], "download": [4, 15, 27, 37, 38, 40, 41, 42], "downsid": 15, "downstream": 13, "draw": 14, "driven": 24, "drop": [26, 43], "drop_eb": 8, "du0sf_a4": 41, "due": 31, "duplic": 1, "dure": [1, 20, 22, 31, 44], "dynam": [13, 25, 26, 36, 39, 43], "e": [0, 1, 7, 8, 13, 16, 20, 21, 22, 25, 26, 28, 31, 37, 41, 42, 43], "e225": 20, "e231": 20, "e501": 20, "each": [0, 1, 6, 7, 8, 9, 15, 16, 17, 20, 23, 25, 26, 27, 31, 32, 34, 35, 40, 41, 43], "earli": [24, 39], "earlier": 26, "earthpi": 16, "eas": 34, "easi": [3, 15, 17, 25, 26, 27, 29, 36, 43], "easier": [0, 1, 3, 5, 13, 15, 16, 18, 24, 25, 26, 31, 34, 38, 40, 42, 43], "easiest": [23, 38], "easili": [26, 31, 34, 41, 42], "ecg": 8, "ecosystem": [2, 3, 5, 13, 14, 16, 19, 20, 22, 23, 24, 27, 28, 29, 31, 38, 41, 42, 43], "eda": 8, "edf": 8, "edg": 7, "edit": [20, 21, 22, 25, 26, 37, 39, 42, 44], "editor": [0, 1, 14, 20, 23, 31, 38, 39, 40, 41], "effect": 16, "effici": 38, "effort": [1, 8, 20, 23, 28, 40], "egg": 27, "either": [3, 13, 21, 22, 25, 26, 27, 31, 41], "ejemplo": 1, "el": 1, "elaps": 41, "element": [3, 6, 8, 12, 13, 15, 16, 18, 25, 30, 32, 36, 39, 41, 43], "elig": 11, "elimin": 29, "els": [1, 42], "elsewher": 0, "email": [22, 25, 39], "email2": 43, "emerg": 24, "empaticaread": 8, "empow": 34, "empti": [1, 36, 39], "en": [1, 8], "enabl": [8, 34], "enclosur": 13, "encount": [9, 24, 28], "encourag": [1, 9, 13, 19, 24, 26, 38, 43], "end": [0, 19, 20, 23, 25, 27, 30, 31, 33, 38, 40, 41, 43], "energi": 32, "enforc": [9, 20, 29], "engag": [7, 9, 36], "engin": [0, 1], "engrain": 28, "enhanc": [8, 23, 40, 43], "enjoi": 15, "enough": [26, 40], "ensur": [0, 1, 13, 15, 16, 19, 20, 22, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44], "ensurepath": 37, "entail": 41, "enter": [1, 29, 38, 42], "entir": [4, 6, 20, 21, 27, 32, 40, 41, 42], "entrada": 1, "entranc": 16, "entri": [1, 25], "env": [37, 38, 39, 42], "environ": [4, 11, 15, 20, 24, 26, 27, 28, 32, 33, 38, 41, 43], "envt": 39, "epilog": 15, "epydoc": 39, "epytext": 39, "equal": [34, 43], "equat": 29, "equival": [1, 14, 20, 25, 29, 43], "er": 7, "error": [0, 1, 7, 20, 25, 29, 32, 34, 39, 41, 43, 44], "especi": [0, 11, 16, 26, 28, 41], "especial": 1, "espec\u00edfico": 1, "essenti": [8, 31, 44], "esta": 1, "establish": [9, 35, 40], "etc": [0, 1, 12, 20, 25, 39], "etre": 8, "european": 6, "evalu": [12, 14, 31], "even": [0, 6, 16, 20, 22, 26, 29, 33, 34, 43], "event": 40, "eventu": 41, "ever": [38, 40], "everi": [1, 13, 16, 19, 20, 24, 25, 33, 35, 38, 39, 40, 41, 42], "everyon": [34, 43], "everyth": [1, 24, 27, 31, 40, 41, 43, 44], "evolut": 8, "evolv": [7, 19, 23, 24, 34], "ex": 29, "exact": 8, "exactli": 43, "examin": 32, "exampl": [1, 5, 7, 8, 12, 14, 15, 17, 24, 31, 32, 36, 39, 41, 42], "examplepi": [20, 22, 25], "excel": [13, 26, 29], "except": [1, 20, 27, 42], "exclud": 26, "exclus": 44, "execut": [15, 20, 31, 37, 41], "executionpolici": 37, "exist": [0, 1, 11, 23, 24, 28, 29, 32, 34, 35, 39, 42, 44], "exit": [37, 42], "expand": 23, "expect": [9, 16, 22, 30, 31, 32, 33, 34, 39, 41, 44], "experi": [25, 26, 32], "experienc": 7, "experiencia": 1, "expert": [7, 17], "expertis": [1, 19], "explain": [16, 29, 34, 40], "explan": [14, 16, 20, 39], "explanatori": 14, "explicit": 7, "explicitli": [7, 26], "explor": [5, 15, 23, 37, 38], "expos": 42, "express": [29, 37, 40], "ext_obj": 16, "extend": [0, 5, 20], "extens": [1, 6, 15, 16, 18, 19, 22, 23, 24, 25, 27, 29, 31, 40, 41, 42], "extensament": 1, "extent": [16, 29], "extent_json": 16, "extent_to_json": 16, "extern": [1, 22], "extra": [40, 41], "extra_requir": 22, "extract": [0, 1], "f": [20, 25, 34], "f401": 20, "f403": 20, "face": [5, 7, 16, 28, 40], "facilit": 8, "fact": 42, "factor": 26, "fahr_to_celsiu": 32, "fahrenheit": 32, "fahrenheit_to_celsiu": 20, "fail": [0, 14, 28, 33, 34, 41], "failur": [4, 34], "fals": [33, 38], "familiar": [0, 31, 32, 39], "farosread": 8, "fast": [20, 33], "faster": [16, 27], "fat": 20, "fatiando": [9, 10], "favor": 13, "favorit": [3, 38, 39, 41], "fearless": 34, "feat": 29, "featur": [1, 4, 8, 11, 17, 20, 21, 22, 23, 28, 29, 31, 33, 34, 39, 40], "feedback": [0, 20, 34], "feedstock": 24, "feel": [0, 16], "feldroi": 43, "fenc": [0, 3], "few": [5, 8, 13, 14, 20, 21, 23, 26, 27, 28, 34, 36, 38, 39, 40, 43], "fewer": [13, 22, 38], "field": [1, 43], "figshar": 28, "figur": [27, 41, 42], "file": [3, 4, 5, 6, 7, 8, 11, 15, 16, 17, 19, 20, 23, 24, 26, 28, 29, 31, 33, 37, 40, 41, 44], "file1": 28, "filenam": [20, 27], "filesystem": 20, "fill": [35, 36, 39, 40], "filter": [23, 25, 27, 43], "final": [14, 22, 24, 26, 29, 32, 36, 39, 40, 43], "final_mean": 32, "find": [0, 1, 3, 7, 14, 16, 17, 19, 20, 24, 25, 26, 27, 29, 31, 36, 37, 38, 40, 41, 42, 43], "fine": [32, 34], "finicki": 15, "finish": [1, 15, 19, 32, 40, 41], "first": [0, 1, 14, 19, 20, 23, 25, 26, 27, 28, 36, 38, 40, 41, 42, 43], "firstnam": [38, 39, 43], "fit": [0, 14, 23, 32, 34, 42], "fix": [0, 1, 7, 8, 9, 20, 26, 29, 33, 40, 43], "fixabl": 20, "fixer": 20, "flag": [20, 31], "flake8": [22, 23, 25, 40], "flat": 23, "fledg": 24, "flesh": 39, "flexibl": [3, 8, 23, 26], "flit": [25, 27, 29, 38], "float": 32, "fly": 5, "focu": [20, 26, 31, 32, 35], "focus": [7, 15, 20, 21, 24, 40], "folder": [0, 1, 23, 28, 41, 42], "follow": [0, 1, 6, 8, 11, 12, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 35, 36, 38, 39, 41, 43, 44], "followup": 42, "forc": 28, "forg": [19, 20, 22, 23, 27, 31, 36, 37, 39, 42], "forget": [1, 39], "forinstanceifyousawasentencelikethisonewithoutani": 20, "fork": 1, "form": [0, 31, 32, 40], "format": [0, 3, 4, 8, 11, 15, 19, 22, 23, 24, 29, 39, 40, 41, 42], "formatt": [22, 25, 40, 43], "former": 0, "fortran": [21, 26], "forum": [0, 19], "forward": [23, 24, 40], "foster": 8, "found": [7, 8, 10, 17, 20, 24, 25, 26, 28, 29, 38, 39, 41, 43], "four": 31, "fr": 1, "frame": 27, "framework": [32, 34], "free": [0, 4, 5, 6, 13], "freedom": 13, "freez": 32, "french": 1, "friend": [20, 43], "friendli": [1, 15, 19, 26, 33, 38, 40, 41], "frill": 26, "from": [1, 5, 6, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 36, 37, 38, 40, 41, 43, 44], "front": [14, 23, 28, 29, 42], "frustrat": 34, "full": [16, 24, 26, 39], "fulli": [4, 26, 29, 43], "fullnam": 43, "funci\u00f3n": 1, "function": [0, 1, 3, 5, 7, 8, 15, 17, 18, 20, 21, 22, 26, 27, 28, 29, 30, 31, 34, 39, 40, 43, 44], "fund": 43, "fundament": 35, "furo": 5, "further": [7, 16, 21, 36, 40, 44], "futur": [0, 11, 16, 19, 21, 25, 26, 29, 34, 37, 39, 40, 41, 42, 43], "fuzzi": 1, "g": [0, 1, 7, 8, 13, 20, 21, 26, 28, 31, 37, 39, 41, 42, 43], "gain": [5, 19, 20, 42], "galleri": 18, "gama": 1, "gap": 26, "gdal": [21, 22, 24, 36], "gdpr": 6, "gemgi": 41, "gener": [1, 6, 13, 16, 17, 19, 21, 22, 26, 27, 29, 30, 31, 35, 41, 43, 44], "generaliz": 40, "geodatafram": 16, "geojson": 16, "geopanda": [5, 16, 17, 22, 27, 31, 39], "geoscienc": 9, "geospati": [22, 24], "get": [7, 13, 14, 15, 16, 17, 19, 20, 22, 23, 24, 25, 26, 28, 31, 37, 39, 40, 41, 42, 43], "gettext": 1, "git": [0, 22, 25, 26, 27, 35, 37, 39, 41], "git_url": 41, "gitbash": 39, "github": [1, 3, 7, 12, 13, 14, 15, 17, 19, 20, 21, 24, 25, 29, 30, 31, 32, 34, 35, 36, 37, 41, 42, 43], "github_usernam": 8, "gitignor": 42, "gitlab": [13, 35, 36, 39, 43], "give": [7, 20, 32, 34], "given": [3, 17, 28, 29, 34, 35], "global": 38, "glossari": 24, "glue": 23, "gnu": [1, 13], "go": [0, 1, 14, 20, 26, 31, 35, 36, 39, 40, 42], "goal": [13, 14, 17, 23, 32, 40, 42, 43], "goe": [1, 19], "gone": 41, "good": [0, 1, 7, 8, 16, 20, 23, 29, 31, 34, 40, 41, 43], "googl": [16, 39], "got": [34, 41], "gpd": 16, "gpl": 13, "gplv3": 13, "grab": 41, "gracefulli": 34, "grain": 32, "granular": 17, "graphic": [1, 30, 38], "grayskul": [22, 37, 40, 42], "great": [0, 1, 4, 8, 14, 16, 22, 23, 26, 31, 36, 38, 40, 42], "greater": [13, 17, 34, 43], "green": [0, 41], "grep": 0, "grid": 15, "group": [20, 25, 26, 28, 29, 40, 41], "groupbi": 32, "grow": [35, 36, 40, 42], "gtagj": 6, "gui": [35, 38], "guid": [7, 10, 12, 16, 17, 21, 22, 25, 26, 28, 29, 31, 35, 36, 39, 40, 43], "guidanc": [8, 13, 19, 23], "guidebook": [1, 22, 35, 43], "guidelin": [7, 10, 11, 20, 29, 35, 43], "gu\u00eda": 1, "gz": [24, 27, 41, 42], "h": [37, 38], "h1": 36, "ha": [3, 8, 11, 13, 14, 15, 17, 20, 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, 34, 36, 37, 38, 39, 41, 42, 43, 44], "hackergrrl": 14, "had": [28, 32], "hai": 1, "hand": [0, 29], "handl": [26, 27, 34], "happen": [10, 29, 36], "happi": 24, "hard": 29, "harder": [16, 28, 29], "harm": 9, "hash": 22, "hasn": 29, "hatch": [0, 19, 21, 25, 27, 31, 36, 37, 41, 43], "hatch_vc": [26, 27], "hatch_vsc": 29, "hatchl": [21, 26, 27, 31, 39, 41, 42], "have": [0, 1, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44], "haven": 36, "header": [36, 38], "health": [12, 14], "healthi": [9, 40], "hear": 23, "heavili": 26, "help": [2, 6, 7, 8, 11, 13, 14, 16, 17, 19, 20, 21, 22, 23, 25, 26, 27, 29, 30, 31, 32, 34, 35, 36, 38, 39, 40, 41, 42, 43], "her": 25, "here": [0, 1, 5, 7, 8, 9, 14, 17, 18, 19, 20, 22, 24, 25, 27, 28, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 41, 42, 43], "hf": 20, "hi": 41, "hidden": [22, 29], "high": [14, 16, 17, 20, 40], "higher": 43, "highli": 17, "highlight": [0, 1, 8, 13, 14, 26, 32], "hint": 14, "histor": 28, "histori": [29, 39, 40, 43], "hit": 20, "hold": 39, "home": 43, "homepag": 43, "hook": [26, 29], "host": [4, 19, 22, 25, 28, 36, 41], "hous": 24, "how": [7, 9, 10, 11, 12, 17, 18, 19, 21, 23, 26, 29, 30, 31, 32, 33, 36, 38, 39, 42], "howev": [2, 3, 4, 5, 6, 7, 13, 15, 16, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 36, 38, 39, 40, 41, 43], "html": [0, 1, 3, 5, 8, 13, 15, 42], "http": [0, 1, 8, 13, 20, 22, 32, 35, 36, 37, 39, 41, 42, 43], "hub": 8, "human": [25, 29, 43], "hundr": 20, "hunter": 13, "i": [2, 3, 5, 6, 9, 12, 14, 15, 17, 20, 21, 23, 26, 28, 29, 30, 32, 33, 37, 38], "i18n": 1, "icon": 0, "id": [20, 26, 31], "idea": [0, 19, 40], "ideal": [11, 14, 15, 17, 22, 24, 26, 40, 42, 43], "identif": 8, "identifi": [1, 20, 25, 26, 35, 43], "ie": [15, 16, 26], "imag": [0, 16, 20, 35, 40], "imagin": 34, "impact": [39, 42], "impair": 34, "implement": [20, 23, 29, 31, 39], "impli": [27, 29], "import": [6, 7, 9, 14, 16, 20, 22, 23, 26, 27, 29, 30, 31, 32, 34, 35, 36, 38, 40, 41, 42, 43], "importantli": 24, "improv": [1, 8, 22, 34], "inbound": 13, "inclin": 11, "includ": [0, 1, 2, 4, 5, 7, 9, 10, 11, 13, 14, 15, 16, 17, 19, 20, 22, 24, 26, 27, 29, 35, 36, 38, 39, 40, 41, 43], "incompat": [13, 29], "incomplet": [0, 42], "inconsist": 20, "increas": [28, 29], "increment": 16, "independ": [0, 25], "index": [0, 1, 6, 8, 15, 27, 28, 38, 40], "indic": [1, 27, 37, 43], "individu": [8, 26, 31, 32, 40, 43], "info": [27, 39], "inform": [0, 1, 7, 8, 10, 11, 21, 22, 25, 27, 28, 31, 35, 38, 39, 40, 41, 42, 43, 44], "infrastructur": [6, 7, 20, 22, 30], "ini": 27, "init": [26, 36], "initi": [13, 16, 20, 40, 41, 43, 44], "inject": [27, 41], "input": [0, 1, 16, 34, 37, 39, 40], "insensit": 20, "insert": 1, "insid": 1, "instal": [1, 7, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 31, 33, 35, 37, 43, 44], "instanc": [0, 1, 3, 16, 20, 21, 26, 27, 29, 31, 34, 38, 39], "instead": [0, 1, 8, 26, 39, 42], "instil": 34, "instruct": [8, 17, 35, 38, 40, 41, 42], "int": [16, 39], "intact": 44, "integ": [16, 39], "integr": [0, 4, 11, 22, 24, 27, 30, 31, 41], "intend": [1, 20, 25, 27, 32, 39, 40, 41, 43], "intent": [23, 34], "interact": [9, 26, 35, 39, 40], "interest": [0, 6, 10, 19, 20, 40, 43], "interfac": [1, 16, 20, 26, 31, 35, 39, 43, 44], "interfer": 31, "intermediari": 1, "internation": 1, "internet": 41, "interpret": 1, "intimid": 0, "intl": 1, "intrins": 13, "intro": [1, 19], "introduc": [0, 2, 8, 26, 32, 38, 40], "introduct": [19, 34], "invalid": [25, 43], "invalu": 33, "inventori": 22, "invest": 28, "invit": 19, "invok": 37, "involv": [0, 17, 29, 32, 40], "io": [16, 36, 41], "ipynb": 15, "is_empti": 0, "isn": [25, 42, 43], "isol": [31, 32, 38, 41], "isort": 25, "issu": [0, 1, 6, 7, 8, 10, 17, 19, 20, 21, 26, 28, 31, 32, 34, 36, 39, 42, 43], "issuecom": 22, "issuenumb": 8, "ital": 1, "item": [8, 16, 20, 27, 39, 41, 43], "iter": 37, "its": [0, 1, 4, 7, 8, 16, 17, 20, 21, 22, 25, 26, 27, 31, 32, 34, 35, 36, 38, 39, 40, 43], "itself": [1, 7, 9, 14, 20, 23, 40], "jacobin": 13, "januari": [13, 42], "japanes": 1, "jargon": [17, 36], "jeremiah": [22, 43], "job": [33, 40], "join": [1, 8, 19], "jonni": 22, "joss": 36, "journal": 36, "json": 43, "juli": 13, "julia": 24, "jupyt": [3, 28, 36], "just": [0, 7, 11, 13, 21, 23, 26, 27, 28, 36, 39, 42, 43], "keep": [0, 1, 7, 8, 9, 12, 16, 17, 22, 24, 26, 29, 36, 40], "keepachangelog": 8, "kei": [13, 22, 25, 39, 43], "kept": 0, "keyword": [25, 29, 39], "kick": 24, "kira": 14, "know": [6, 7, 14, 16, 19, 21, 26, 29, 31, 35, 36, 41], "knowledg": [23, 26, 41], "known": [12, 20, 24, 25, 27, 32, 34, 41], "l": [1, 41], "l10n": 1, "la": 1, "lab": 11, "label": [1, 29], "land": [5, 14, 15, 25, 27, 35, 36, 41, 42, 43], "lang": 1, "languag": [0, 9, 13, 14, 17, 22, 23, 24, 25, 26, 27, 28, 29, 31, 35, 36, 38, 39, 40, 41, 43], "language_vers": 20, "larg": [13, 20, 28, 40], "larger": [0, 28, 40], "largest": 26, "last": [8, 31, 35, 41, 43], "lastnam": [38, 39, 43], "later": [0, 36, 38, 39, 42], "latest": [1, 7, 8, 33, 38, 41], "launch": 1, "layer": [16, 23, 26], "layout": [23, 38, 39], "lc_messag": 1, "lead": [20, 24, 27, 31, 36], "leah": [38, 39], "leahawass": [39, 42], "learn": [0, 1, 3, 13, 19, 20, 22, 24, 28, 30, 31, 32, 33, 38, 39], "least": [7, 39], "leav": [0, 20, 26, 34, 36, 41], "legal": [13, 35, 36, 40, 43], "len": 0, "lend": 23, "length": 20, "lengthi": 20, "less": [0, 14, 15, 20, 26, 32, 34, 43], "lesson": [13, 34, 35, 36, 38, 40, 41, 42, 43, 44], "let": [1, 6, 13, 14, 17, 20, 22, 25, 27, 31, 34, 36, 39, 40, 41, 44], "letter": [1, 39], "level": [12, 14, 15, 16, 17, 22, 23, 28, 29, 32, 39, 40], "librari": [8, 14, 17, 20, 22, 31, 38, 41, 42, 43], "licens": [0, 7, 10, 12, 14, 19, 25, 27, 28, 36, 38, 39, 40, 41], "license_fil": 41, "life": 32, "lifecycl": 40, "lightweight": 6, "like": [0, 1, 2, 6, 7, 10, 13, 14, 15, 19, 20, 21, 22, 24, 25, 26, 27, 31, 32, 34, 36, 38, 39, 40, 41, 43, 44], "likelihood": 22, "limit": [3, 24, 26, 27, 42, 43], "line": [0, 16, 19, 20, 25, 26, 29, 38, 43, 44], "link": [0, 7, 8, 10, 11, 12, 15, 17, 25, 29, 31, 33, 35, 36, 39, 40, 41, 43], "lint": [22, 25, 41], "linter": [22, 23, 40, 41, 43], "linux": [0, 13, 27, 31, 33, 37, 38, 41, 42], "list": [0, 3, 6, 7, 14, 15, 16, 17, 19, 20, 22, 24, 25, 26, 27, 31, 33, 37, 39, 40, 41, 42, 43], "literalinclud": 0, "live": [0, 1, 8, 11, 15, 19, 23, 24, 28, 31, 39, 40, 42], "ll": [35, 38, 39, 40, 42], "lo": 1, "load": 16, "local": [4, 11, 19, 22, 24, 26, 28, 29, 30, 31, 33, 35, 37, 38, 40, 41, 42], "localhost": [0, 1], "locat": [1, 9, 10, 14, 20, 22, 28, 29, 31, 33, 36, 37, 38, 39, 41, 42, 44], "lock": 26, "log": [0, 42], "login": 42, "long": [20, 25, 26, 29, 34, 40, 42, 43], "longer": [0, 16, 20, 26, 43], "look": [0, 1, 6, 12, 15, 20, 22, 23, 25, 26, 27, 31, 34, 36, 38, 41, 42, 43, 44], "loop": 20, "lot": [16, 43], "love": 5, "low": 41, "lower": [16, 41, 43], "lowercas": 39, "lowest": 43, "lr": 0, "lwasser": 41, "m": [0, 1, 20, 25, 26, 29, 33, 36, 37, 41, 42], "mac": [22, 27, 31, 33, 38, 39, 41, 42], "machin": [27, 40, 43], "maco": [0, 20, 31, 33, 37], "made": [0, 1, 8, 21, 23, 29, 33], "magic": 34, "magnitud": 8, "mai": [0, 1, 6, 8, 9, 11, 13, 15, 16, 17, 20, 21, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 36, 39, 40, 41, 42, 43, 44], "main": [0, 26, 29, 33, 37, 38, 39, 41, 42, 44], "maintain": [0, 1, 2, 4, 9, 11, 13, 14, 16, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 33, 34, 35, 36, 38, 42], "mainten": [11, 14, 15, 28, 29, 34, 36, 40, 42], "major": [7, 13, 26, 29, 37], "make": [1, 3, 6, 8, 11, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 38, 41, 42, 44], "makefil": [26, 27], "malici": 27, "mamba": 39, "mambaforg": 39, "manag": [0, 1, 20, 22, 25, 26, 27, 31, 40, 41, 42, 44], "mani": [1, 3, 4, 6, 9, 12, 13, 15, 17, 20, 21, 23, 24, 26, 27, 28, 29, 36, 37, 38, 39, 41, 43], "manifest": [26, 27], "manner": 29, "manual": [20, 24, 26, 36, 37, 39, 41, 43, 44], "map": 1, "mark": 1, "markdown": [1, 19, 35, 36, 39], "markupsaf": 39, "mastodon": 6, "match": [24, 41, 42], "matomo": 6, "matplotlib": [15, 39], "matrix": [26, 31, 33], "matter": [23, 42], "matur": [26, 27, 43], "maxi": 16, "maxim": 14, "maxx": 16, "mccabe": [20, 25], "md": [1, 3, 7, 9, 11, 15, 17, 25, 27, 28, 35, 39, 40, 42, 43], "mean": [0, 1, 5, 13, 16, 20, 22, 24, 26, 27, 28, 29, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43], "meaning": 41, "meant": 1, "measur": [12, 14], "mechan": 24, "media": 6, "meet": [14, 23], "mention": [12, 14, 20, 25, 26, 42], "merg": [0, 1, 20, 24, 40, 41], "meson": [21, 26], "mesonpi": 21, "messag": [0, 20, 26, 29, 34, 41], "meta": 41, "metadata": [6, 19, 22, 23, 24, 26, 28, 29, 35, 38, 40, 41, 42], "method": [0, 8, 15, 17, 18, 22, 32, 34, 38, 40], "mib": 41, "might": [1, 2, 3, 7, 8, 9, 14, 16, 17, 18, 20, 22, 23, 24, 25, 28, 29, 31, 32, 34, 36, 38, 39, 40, 41, 43], "migrat": [8, 21, 38, 39], "mimic": 15, "mind": [16, 17, 22, 26], "mini": 16, "minim": [22, 24, 25, 41, 43], "minimum": [12, 23, 41, 43], "minor": [26, 27, 29, 37], "minx": 16, "misc": 20, "misconcept": 39, "mismatch": 22, "miss": [8, 20, 26, 28, 31, 32, 34, 41, 43], "mistak": 34, "misus": 36, "mit": [13, 27, 35, 38, 39, 41, 43], "mix": [24, 41], "mk7f5y0t": 42, "mkdoc": [2, 5], "mo": 1, "mod_plot": 29, "mode": [22, 25, 26, 37, 38, 39, 42], "model": 20, "moder": 35, "modern": [23, 25, 26, 29, 31], "modif": [0, 5], "modifi": [0, 1, 8, 13, 15, 20, 29, 40, 41, 43], "modul": [16, 20, 21, 40, 41, 42, 44], "modulea": 28, "moduleb": 28, "more": [0, 1, 3, 4, 6, 7, 8, 13, 14, 16, 17, 19, 20, 21, 22, 23, 25, 27, 28, 29, 30, 31, 32, 33, 35, 36, 38, 39, 41, 44], "most": [1, 2, 3, 5, 6, 13, 21, 23, 24, 25, 26, 27, 29, 31, 35, 38, 39, 40, 41, 43], "move": [6, 8, 12, 14, 22, 26, 28, 43], "movement": 13, "movingpanda": [7, 12, 14, 24], "mozilla": 11, "msgid": 1, "msgpack": 39, "msgstr": 1, "msi": 38, "much": [1, 25, 26, 31], "multilin": [1, 43], "multipl": [1, 16, 20, 22, 26, 29, 31, 37, 39, 40, 41], "murphi": 34, "must": [21, 22, 41, 43], "my_depend": 22, "my_nifty_packag": 41, "my_packag": 44, "mydepend": 22, "mypackag": 28, "mypackagereponam": 28, "mypi": [16, 39, 43], "myst": [0, 2, 5, 17, 19], "n": 26, "name": [0, 1, 8, 15, 17, 20, 22, 24, 25, 26, 27, 28, 29, 31, 33, 35, 40, 41, 42], "napoleon": 16, "nativ": [3, 5], "natur": 32, "navig": [0, 1, 8, 17, 19, 26, 39, 41, 42, 44], "necessari": [0, 1, 21, 22, 37, 44], "need": [0, 3, 4, 7, 8, 11, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31, 32, 33, 35, 36, 38, 40, 41, 42, 43, 44], "neg": [9, 32, 35], "neither": [16, 39], "net": 34, "network": 27, "never": [20, 26, 29, 32], "new": [7, 8, 11, 13, 15, 16, 20, 23, 24, 26, 28, 32, 33, 34, 35, 36, 37, 40, 41, 42, 44], "newbi": 43, "newer": [22, 23, 26], "newli": [41, 42], "newlin": 20, "next": [0, 1, 19, 20, 26, 35, 36, 39, 41, 42], "nice": [3, 11, 15, 22, 25, 43], "nick": 34, "noarch": 41, "non": [19, 21, 24, 25, 36, 37, 43], "none": [27, 41, 42], "nor": 39, "norm": 19, "normal": [1, 27, 28, 29], "notabl": 8, "note": [1, 7, 17, 21, 26, 27, 28, 31, 32, 36, 37, 38, 40, 41, 42, 43], "notebook": [3, 28, 36], "notic": [1, 9, 12, 15, 16, 17, 20, 22, 25, 27, 28, 31, 35, 38, 39, 41, 42, 43], "notif": 24, "nov": [7, 12, 14], "now": [22, 24, 29, 35, 36, 39, 41, 42, 43, 44], "nox": [0, 1, 22, 26, 30, 33, 39, 40], "noxfil": [1, 31], "np": 16, "nterfac": 16, "nuanc": [15, 21, 26], "nuestra": 1, "num1": 16, "num2": 16, "number": [1, 8, 16, 22, 26, 27, 31, 34, 38, 39, 41], "numer": [23, 25, 26, 28, 40], "numpi": [22, 23, 27, 28, 34, 39, 40, 42, 43], "o": [0, 1, 20, 22, 25, 33, 37, 41], "object": [1, 16, 39], "obtain": 39, "obviou": [16, 25, 43], "occur": [32, 34, 40, 41], "off": 24, "offer": [3, 4, 6, 26, 31, 38, 40], "offici": [41, 42], "often": [1, 8, 14, 16, 20, 21, 22, 23, 26, 27, 28, 29, 36, 39, 40, 43], "ok": [39, 41, 43], "old": 7, "older": [4, 26], "oldest": 43, "onboard": [11, 40], "onc": [0, 1, 9, 14, 20, 22, 24, 27, 33, 35, 38, 39, 40, 41, 42, 43], "one": [0, 1, 6, 10, 16, 20, 21, 22, 23, 25, 26, 27, 29, 31, 34, 35, 36, 38, 39, 40, 41, 42, 43], "ones": [0, 35], "onli": [0, 1, 8, 20, 21, 22, 24, 25, 26, 27, 29, 31, 33, 37, 39, 40, 41, 42, 43, 44], "onlin": [0, 2, 12, 13, 14, 24, 30, 31, 33, 36, 40], "onpythonpackag": 15, "onto": [27, 41], "open": [0, 1, 6, 19, 20, 21, 23, 24, 26, 28, 35, 36, 37, 39, 40, 41, 42, 43, 44], "openscm": 28, "opensourc": 35, "oper": [0, 7, 15, 16, 20, 25, 26, 27, 29, 30, 33, 37, 38, 40, 43], "oppos": 26, "opt": 11, "optim": 2, "option": [0, 1, 2, 3, 4, 6, 13, 14, 19, 23, 24, 26, 29, 31, 36, 38], "order": [1, 9, 11, 16, 20, 21, 22, 24, 25, 27, 36, 39, 41, 42, 43], "org": [1, 8, 13, 14, 22, 25, 28, 35, 36, 37, 38, 39, 41, 42, 43], "organ": [8, 25, 26, 27, 31, 36, 39, 40, 42, 43], "origin": [24, 25, 32, 43], "osi": [0, 13, 25, 27, 40, 43], "other": [0, 1, 3, 4, 5, 7, 8, 9, 12, 13, 14, 20, 23, 24, 25, 26, 27, 28, 32, 34, 35, 36, 39, 41, 42, 43], "otherwis": [0, 16, 29, 31, 41], "ou": 41, "our": [1, 5, 7, 19, 21, 22, 23, 25, 26, 27, 28, 32, 35, 36, 38, 39, 40, 41, 43], "out": [3, 8, 11, 13, 15, 20, 23, 24, 25, 26, 27, 28, 35, 36, 38, 40, 41, 42, 43], "outbound": 13, "outcom": 34, "outlier": [1, 34], "outlin": [11, 36], "output": [1, 15, 16, 20, 27, 31, 38, 40, 41], "outsid": [1, 28, 33, 34, 40], "over": [6, 8, 14, 19, 26, 28, 34, 40, 41, 43], "overflow": 13, "overlap": 43, "overload": 14, "overrid": 26, "oversight": 31, "overus": 14, "overview": [13, 21, 22, 23, 25, 26, 28, 29, 36, 41, 43], "overwhelm": 14, "overwritten": 20, "own": [0, 9, 13, 21, 26, 27, 31, 32, 40, 41, 43], "p": 16, "pack": 40, "packag": [3, 6, 33, 38, 44], "package_nam": 37, "packagenam": [22, 36, 39, 41], "page": [0, 1, 5, 6, 14, 15, 16, 19, 22, 23, 24, 25, 26, 27, 28, 31, 32, 34, 35, 36, 39, 40, 41, 42, 43], "paid": 4, "pair": [25, 43], "panda": [12, 14, 20, 22, 27, 28, 34, 39, 40, 42, 43], "pandera": [14, 40], "paper": 13, "paquet": 1, "para": 1, "paramet": [1, 16, 31, 32, 39], "parenthes": 37, "parser": 5, "part": [0, 13, 17, 21, 22, 27, 28, 30, 32, 34, 41], "parti": [8, 20, 25], "participa": 1, "particular": [0, 25, 31, 32], "particularli": [15, 22, 26, 27, 28, 31, 40, 41, 42, 44], "partnership": 36, "pass": [1, 14, 16, 20, 31, 32, 41], "password": 42, "past": [35, 36, 42], "patch": [26, 29, 37], "path": [0, 22, 28, 37, 38, 39, 42], "path_to_exampl": 16, "patient": 41, "pdf": 4, "pdm": [21, 25, 27, 38, 43], "peer": [7, 13, 19, 20, 23, 29, 36, 40], "pencil": 0, "peopl": [3, 6, 7, 9, 13, 17, 22, 24, 25, 28, 29, 33, 34, 35, 36, 40, 43], "pep": [20, 23, 26, 29], "pep8": 20, "per": 15, "percentag": [1, 41], "perfect": [36, 42], "perform": [1, 16, 22, 23, 25, 26, 32, 34, 36, 40], "period": [32, 43], "perman": 42, "permiss": [35, 38, 42], "person": [0, 1, 20, 40, 42, 43], "perspect": 13, "pervas": 39, "philosophi": 13, "phish": 42, "pick": [23, 24, 26, 43], "pictur": 32, "piec": [19, 32, 34], "ping": 41, "pip": [0, 1, 20, 25, 26, 31, 33, 36, 37, 38, 40, 41, 42, 43, 44], "pipelin": 40, "pipx": [37, 38, 41, 44], "pkg": [27, 38], "place": [0, 10, 21, 22, 23, 25, 26, 28, 35, 36, 39, 42, 43], "placehold": 35, "plai": 31, "plain": 0, "plan": [1, 13, 22, 23, 26, 39, 41, 42], "platform": [2, 12, 22, 25, 27, 30, 35, 36, 40], "plausibl": 6, "playground": 20, "pleas": [0, 1, 7, 14, 21, 23, 41], "plenti": 14, "plot": [15, 22, 40], "plot_": 15, "plot_sampl": 15, "plot_tutori": 15, "plotm": 22, "plu": 22, "plugin": [1, 21, 26, 29, 31, 38], "po": 1, "poedit": 1, "poetri": [8, 21, 22, 25, 27, 38, 43], "point": [22, 25, 32, 34, 36, 39, 41, 42, 43], "poliastro": 28, "polici": [29, 37], "polit": 13, "polygon": 16, "pooch": 28, "popul": [18, 25, 26, 27, 35, 36, 39, 41, 43], "popular": [5, 6, 26, 31, 38, 39], "por": 1, "portabl": 1, "portion": [32, 35], "possibl": [0, 6, 17, 20, 32, 43], "post": [0, 25, 27, 35, 40, 41, 43], "post1": 42, "post2": 27, "potenti": [0, 14, 15, 20, 26, 28, 29, 30, 33, 40], "power": 13, "powershel": 37, "ppli": 16, "pr": [0, 20, 24, 40, 41], "practic": [7, 13, 18, 19, 23, 25, 27, 29, 31, 40, 41, 42, 43], "pre": [0, 27, 29, 42, 44], "precis": 43, "precisa": 1, "precommit": 20, "prefer": [1, 2, 3, 5, 7, 8, 15, 20, 21, 26, 29, 38, 39, 41, 43], "prescrib": 43, "present": [0, 14, 15, 28, 34], "preserv": 13, "pretend": [22, 32], "prettier": 0, "preview": [0, 6, 35], "previou": [35, 36, 39, 41, 42, 43, 44], "previous": [22, 42], "primari": [8, 13, 28, 29, 41, 43], "primarili": 39, "principiant": 1, "print": [25, 27, 37, 38], "prior": [22, 24, 25, 39], "prioriti": 28, "privaci": 6, "privat": 24, "pro": [0, 15], "probabl": [14, 43], "problem": [13, 25, 36], "problema": 1, "problemat": [1, 26, 34], "proce": 13, "proceed": 44, "proceso": 1, "process": [4, 11, 13, 16, 19, 20, 22, 23, 24, 25, 27, 30, 31, 36, 37, 40, 41, 42, 43, 44], "processor": 27, "produc": [1, 15], "product": [27, 39, 42, 43], "profici": 11, "program": [0, 23, 25, 26, 27, 32, 39, 43], "programm": [7, 16, 17], "progress": [4, 8], "prohibit": 13, "project": [0, 1, 4, 8, 13, 14, 17, 20, 22, 23, 24, 26, 29, 30, 31, 34, 35, 36, 38, 41, 42, 44], "projectnam": 25, "promot": 31, "prompt": [39, 42, 44], "proof": [0, 28], "proper": [1, 41], "properli": [14, 16, 22, 25, 27, 32, 33, 34, 37, 41, 43], "proprietari": 13, "prose": 0, "protect": [0, 6, 9, 13, 35], "protocol": [6, 23], "provid": [0, 1, 6, 8, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 29, 30, 31, 32, 34, 35, 39, 40, 41, 42, 43, 44], "prueba": 1, "pru\u00e9balo": 1, "psf": [13, 20], "public": [8, 13, 19, 24, 25, 39, 40, 43], "publicli": 40, "publish": [2, 14, 17, 19, 22, 23, 25, 26, 27, 29, 35, 36, 38, 39, 44], "pued": 1, "pull": [1, 4, 8, 10, 11, 15, 20, 22, 24, 34, 35, 40], "pull_request": 33, "pullrequestreview": 22, "punctuat": 20, "pure": [0, 19, 20, 22, 23, 25, 27, 29, 39, 41], "purpos": [8, 13, 27, 32], "push": [0, 1, 4, 24, 29, 33, 39, 40], "put": 32, "puzzl": [32, 34], "py": [0, 1, 6, 8, 15, 16, 20, 22, 28, 29, 31, 36, 38, 40, 41], "py3": [27, 42], "pycharm": [20, 26], "pycodestyl": [20, 25], "pycqa": 20, "pyd": 26, "pydant": 43, "pydata": [5, 6, 25], "pydata_sphinx_them": 22, "pyenv": [41, 42], "pyflak": [20, 25], "pygmt": 10, "pylanc": 26, "pyo": [36, 39], "pyobject": 0, "pyopensci": [1, 6, 8, 11, 13, 14, 20, 22, 24, 25, 27, 29, 32, 35, 36, 38, 39, 41, 42, 43], "pyos_packag": 39, "pyosdev": 39, "pyosmeta": 43, "pyospackag": [31, 32, 33, 36, 41, 42, 43], "pyospackage_yournameher": 42, "pyospkg": 42, "pypa": [22, 26, 27, 28, 43], "pypi": [14, 19, 22, 23, 25, 26, 28, 29, 31, 35, 36, 37, 38, 39, 44], "pyproject": [0, 8, 19, 20, 21, 23, 26, 27, 28, 31, 35, 38, 41, 42], "pytest": [22, 25, 28, 32, 33], "python": [2, 3, 14, 25, 33, 37, 38, 44], "python3": [20, 26, 31], "pythonista": [1, 19], "pythonsafepath": 28, "pytz": 42, "p\u00e1gina": 1, "qualiti": [7, 14, 16, 20, 38, 40], "quarter": 20, "quarterli": 20, "que": 1, "question": [0, 9, 10, 17, 19, 21, 24, 26, 40], "quick": [1, 5, 14, 17, 20, 26, 36, 39], "quickli": [4, 14, 15, 16, 17, 34, 43], "quirk": 43, "quit": 26, "quot": [20, 22], "r": [24, 26, 37, 42, 43], "r8": 41, "rais": [1, 25, 43], "randomli": 31, "rang": [1, 19, 23, 26, 43], "rare": 39, "raster": 16, "rather": [0, 14, 15, 17, 20, 22, 25, 26, 28, 29, 31, 39, 40, 41, 42], "raw": 27, "re": [20, 23, 25, 31, 34, 35, 42, 44], "read": [8, 13, 14, 16, 17, 18, 19, 20, 25, 26, 27, 28, 35, 40, 43], "read_fil": 16, "readabl": [20, 25, 43], "reader": 17, "readi": [8, 20, 24, 27, 32, 39, 40, 41, 42], "readm": [3, 7, 10, 12, 17, 19, 25, 26, 27, 28, 35, 39, 41, 42], "readthedoc": [4, 22], "real": [32, 42], "realiz": 40, "realiza": 1, "realli": [22, 24, 40, 42, 43], "reason": [13, 16, 22, 23, 27, 28, 29], "rebuild": [24, 27, 41, 42], "receiv": [26, 41], "recent": [3, 22, 24, 25, 43], "recip": [22, 24, 37, 40], "reclaim": 13, "recogn": [26, 39, 41], "recognit": 8, "recommend": [0, 11, 19, 21, 22, 26, 27, 28, 29, 31, 35, 36, 38, 39, 42, 43], "record": [8, 20, 27, 40], "recov": 41, "rectangl": 0, "rectifi": 34, "red": [0, 41], "redistribut": 13, "reduc": [20, 22, 26], "ref": [20, 36], "refactor": [0, 32, 34], "refer": [0, 1, 3, 4, 8, 16, 17, 19, 20, 21, 22, 23, 26, 27, 29, 32, 34, 35, 39, 40, 41, 43], "referenc": 35, "reflect": 44, "reformat": 20, "regard": 40, "regardless": [20, 24], "regul": 6, "regularli": [39, 42], "reject": 43, "rel": 0, "relat": [0, 1, 20, 24, 31, 39, 42], "relationship": 39, "releas": [11, 19, 20, 24, 26, 27, 36, 39, 40, 41, 42], "release_languag": 1, "relev": [0, 8, 40, 43], "reli": [21, 26, 29, 32], "reload": 0, "remain": [8, 13, 40, 44], "rememb": [7, 20, 22, 36, 40, 41, 42], "remot": 39, "remotesign": 37, "remov": [1, 8, 20, 25, 26, 39], "renam": 42, "render": [3, 15, 43], "reorder": 20, "repeat": 40, "replac": [0, 1, 16, 20, 21, 25, 39], "replic": 31, "repo": [0, 12, 17, 19, 20, 21, 26, 29, 37, 38, 39, 40, 41], "report": [7, 31, 40, 43], "repositori": [1, 4, 7, 9, 10, 11, 13, 14, 19, 20, 22, 25, 26, 27, 28, 29, 33, 35, 36, 39, 40, 42, 43, 44], "repres": [13, 16, 24, 25, 26, 27, 31, 32, 34, 41, 43], "reproduc": [13, 15, 31, 40], "republish": 43, "request": [1, 4, 8, 10, 11, 15, 20, 24, 26, 34, 40, 43], "requir": [0, 1, 6, 7, 11, 13, 16, 20, 21, 24, 26, 27, 29, 31, 34, 36, 38, 39, 40, 41, 42, 44], "research": 7, "resolv": 43, "resourc": [1, 8, 19, 21, 25, 40, 43], "respect": 28, "respond": 41, "respons": 1, "rest": [0, 16, 19, 22], "restart": [38, 39], "restmethod": 37, "restrict": 13, "restructur": 3, "result": [26, 34, 39], "result2": 34, "result3": 34, "retriev": [38, 43], "return": [0, 16, 20, 26, 29, 32, 34, 39, 42], "reus": [35, 40, 42], "rev": 20, "review": [11, 12, 13, 14, 15, 19, 20, 22, 24, 29, 34, 35, 36, 39, 40, 41, 43, 44], "revis": [1, 14], "revisada": 1, "rewrit": 0, "rich": 3, "richard": 13, "right": [0, 13, 24, 34, 41], "rioxarrai": 22, "risen": 3, "risk": [22, 26], "rmnp": 16, "road": 20, "rob": 13, "robust": 32, "rogram": 16, "root": [9, 10, 13, 14, 20, 28, 31, 33, 35, 36, 39, 43], "round": 19, "rst": [0, 2, 5, 15], "ruff": [22, 23, 25, 43], "rule": [7, 9, 20, 43], "run": [0, 1, 4, 5, 11, 19, 22, 25, 26, 27, 28, 29, 30, 32, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44], "runner": 31, "runtim": 24, "sa": 13, "safe": [42, 43, 44], "safeti": 34, "sai": [13, 34], "same": [0, 1, 8, 13, 20, 24, 25, 26, 27, 28, 29, 32, 34, 39, 40, 41, 42, 43], "satisfi": [0, 1], "save": [0, 20, 34, 35, 41], "saw": [16, 20], "scan": [16, 20], "scene": 42, "scheme": 8, "school": [14, 17], "scienc": [7, 11, 19], "scientif": [3, 5, 14, 16, 20, 22, 23, 24, 26, 29, 31, 32, 38, 40, 41, 43], "scientist": [1, 40], "scikit": [21, 26, 28], "scipi": [9, 23, 28], "scm": 25, "scoop": 37, "scope": [8, 23, 36, 37, 42, 43], "scratch": 39, "screen": [7, 12, 14, 38], "screenshot": [12, 27], "script": [0, 15, 16, 25, 27, 37, 40, 41], "script_nam": 37, "scroll": [0, 42], "sdist": [19, 24, 25, 26, 37, 39, 40, 41], "sea": 1, "seaborn": 22, "search": [25, 28, 42], "second": [0, 1, 15, 26, 39, 40], "secondperson": 43, "section": [0, 1, 2, 12, 15, 16, 17, 18, 19, 22, 23, 25, 26, 27, 28, 29, 30, 32, 34, 35, 39, 42, 43], "secur": [22, 42], "see": [0, 1, 5, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 25, 26, 27, 28, 29, 34, 36, 38, 39, 40, 41, 42, 43, 44], "seen": [26, 28], "select": [13, 20, 21, 23, 25, 26, 35, 38, 42, 43], "self": [14, 16, 29, 31, 34, 40], "semant": [26, 28], "semver": [8, 23], "send": 36, "sens": [0, 8, 16, 29, 36], "sentenc": [14, 16, 20], "separ": [0, 1, 15, 16, 25, 26, 41, 42, 43], "septemb": 13, "sequenc": 20, "seri": [0, 1, 15, 32, 38, 39, 40, 41], "serv": [5, 8, 14, 26, 31, 32, 34, 43], "server": [1, 22], "servic": [4, 22, 41, 42], "session": [0, 1, 31, 39], "set": [5, 6, 7, 11, 15, 19, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44], "set_window": 8, "setup": [0, 4, 8, 11, 15, 20, 21, 22, 23, 26, 30, 31, 33, 38, 41, 43], "setuptool": [8, 22, 27], "setuptools_scm": [25, 26, 27], "setuptooms_scm": 25, "sever": [14, 16, 17, 20, 24, 25, 26, 27, 35, 38, 40], "sg_execution_tim": 15, "sh": 37, "sha256": 41, "shape": [16, 19, 41], "shapefil": 16, "share": [0, 6, 13, 23, 39, 40, 41], "sharealik": 13, "shell": [25, 33, 35, 37, 38, 39, 41, 42], "shield": 36, "shift": [6, 25], "ship": 41, "short": [1, 16, 17, 25, 32, 36, 39], "shortcut": 20, "shorten": 31, "shortli": 41, "shot": [7, 12, 14], "should": [0, 1, 7, 9, 13, 15, 16, 17, 18, 20, 22, 23, 24, 25, 26, 30, 32, 33, 34, 36, 38, 39, 41, 42, 43], "show": [0, 11, 12, 14, 15, 16, 19, 23, 26, 27, 30, 31, 32, 35, 36, 37, 39, 42], "showcas": 17, "shown": [0, 20, 27], "shp": 16, "si": 1, "side": 35, "sign": [36, 39], "signific": [8, 20, 28], "similar": [1, 12, 14, 16, 20, 26, 27, 35, 39, 41, 42, 43], "similarli": [15, 24, 29, 32, 43], "simpl": [3, 7, 8, 14, 16, 17, 20, 21, 23, 24, 25, 26, 28, 37, 39, 42], "simpler": [3, 13, 21, 22, 29], "simpli": [16, 36, 40, 41, 42], "simplic": 3, "simplifi": [16, 24, 25, 29, 31], "simul": 32, "sinc": [1, 8, 20, 29, 39, 43, 44], "singl": [15, 16, 20, 21, 22, 25, 26, 29, 31, 32, 36, 40, 43], "sit": 8, "site": [0, 6, 14, 21], "situat": 34, "six": 42, "size": 28, "skill": [1, 19, 43], "skip": [1, 11, 31, 35, 36, 39, 43], "slack": 6, "slightli": [15, 16, 26, 28], "slow": 28, "slower": 29, "slowli": 6, "small": [0, 17, 20, 28, 29, 36, 41], "smaller": [24, 26, 28, 32, 40], "smooth": 32, "snapshot": 26, "snyk": [12, 14], "so": [0, 1, 7, 13, 14, 20, 22, 23, 24, 26, 27, 32, 39, 40, 41, 42, 43], "social": 6, "softwar": [1, 7, 8, 22, 24, 27, 32, 33, 34, 35, 36, 40, 43], "solv": 36, "some": [1, 2, 4, 6, 8, 9, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 36, 39, 40, 41, 43, 44], "someon": [1, 10, 13, 14, 15, 17, 22, 25, 28, 34, 36, 40, 41, 42], "someth": [0, 7, 8, 22, 27, 34, 36, 38, 39, 40, 41, 42, 43], "sometim": [1, 21, 25, 29, 31, 34, 40, 43], "somewher": 40, "soon": [1, 40], "sort": [20, 25, 27, 43], "sourc": [0, 1, 6, 20, 23, 24, 29, 35, 36, 37, 39, 40, 41, 42, 43], "sourmash": 28, "space": [0, 1, 20, 28, 39], "spacelabsread": 8, "spanish": 1, "spatial": [16, 17, 22, 41], "spdx": 38, "speak": 24, "spec": [8, 23], "special": [1, 13, 34], "specif": [1, 7, 8, 11, 13, 16, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 43, 44], "specifi": [0, 1, 11, 14, 15, 16, 17, 20, 22, 25, 26, 31, 33, 35, 39], "spectrum": 40, "spell": [7, 43], "spend": [14, 32, 41], "sphinx": [0, 1, 2, 3, 16, 17, 18, 19, 22, 25, 42], "sphinxcontrib": 6, "split": 1, "spot": 34, "spreadsheet": 32, "squar": [39, 43], "src": [20, 23, 38, 39, 42, 44], "stabl": [24, 43], "stack": 13, "stackoverflow": 13, "stage": [0, 20, 24], "stai": [0, 8, 34], "stallman": 13, "stand": [16, 42], "standalon": 42, "standard": [8, 11, 20, 23, 24, 25, 26, 29, 35, 40, 43], "start": [0, 7, 13, 14, 15, 16, 17, 19, 20, 23, 25, 26, 28, 31, 32, 35, 38, 39, 40, 41, 42], "stat": 1, "state": [14, 17, 26, 36], "static": [8, 16, 41, 43], "statist": 1, "statu": [0, 14, 25, 27, 39, 43], "step": [0, 1, 8, 16, 17, 21, 24, 27, 28, 29, 31, 32, 33, 37, 40], "stick": 26, "sticki": 13, "still": [0, 6, 7, 22, 26, 29, 34, 40, 43, 44], "storag": 28, "store": [1, 17, 25, 26, 27, 29, 38, 39, 41, 42, 43], "straight": [23, 24, 40], "straightforward": 1, "strategi": 33, "strava_api_stub": 27, "stravalib": [20, 27], "streamlin": [20, 26, 31, 44], "strict": 26, "string": [0, 16, 20, 25, 43], "strong": 13, "stronger": 32, "strongli": [11, 22, 25, 26, 28, 42, 43], "structur": [1, 7, 8, 15, 16, 19, 20, 25, 26, 27, 34, 36, 37, 40, 42, 43, 44], "struggl": 41, "studi": 40, "studio": 1, "style": [0, 1, 11, 19, 23, 38, 39, 40], "stylist": 20, "styliz": 22, "sub": [22, 25], "subdirectori": 39, "subgroup": 22, "submiss": 41, "submit": [6, 7, 10, 11, 13, 14, 20, 22, 23, 33, 40], "subsequ": [27, 42], "subset": 7, "substitut": 39, "success": [4, 38], "successfulli": [15, 20, 38, 41, 42, 44], "suggest": [0, 1, 3, 4, 7, 13, 16, 20, 21, 22, 25, 28, 29, 35, 36, 38, 39, 41, 42, 43], "suit": [11, 14, 15, 16, 20, 22, 23, 24, 25, 27, 31, 32, 33, 34, 38, 40, 41], "suitabl": 21, "sullivan": 14, "sum": [16, 39], "summar": [26, 37], "summari": [35, 41], "sunpi": 35, "suppli": 34, "support": [1, 3, 4, 5, 6, 7, 15, 16, 17, 19, 21, 23, 24, 25, 27, 28, 29, 31, 32, 35, 38, 39, 41, 42, 43], "suppos": 34, "sure": [0, 1, 14, 16, 20, 28, 32, 34, 35, 36, 38, 40, 41, 42, 43, 44], "surround": [19, 20, 26, 32], "survei": 26, "svg": 36, "sw": 13, "swap": 25, "switch": [8, 26], "symbol": 26, "symlink": 26, "sync": [0, 35], "syntax": [1, 2, 5, 17, 20, 22, 25, 27, 31, 37, 39, 43, 44], "system": [0, 16, 21, 22, 25, 26, 27, 28, 29, 30, 33, 37, 38, 39, 40, 42, 43, 44], "t": [0, 1, 4, 7, 13, 14, 16, 20, 22, 24, 25, 26, 27, 29, 31, 32, 34, 35, 36, 38, 39, 40, 41, 42, 43], "tab": [0, 12, 26, 35], "tabl": [0, 22, 27, 37, 38, 39], "tag": [1, 4, 6, 22, 25, 26, 36, 39, 41, 43], "tagsread": 8, "take": [0, 13, 16, 28, 40, 41, 44], "takeawai": 43, "taken": [0, 7, 12, 14, 41, 42], "talk": [2, 13, 18, 22], "tar": [24, 27, 41, 42], "tarbal": [27, 41], "target": [1, 7, 36], "task": [7, 16, 20, 22, 25, 26, 31, 32, 36, 40, 44], "taxpasta": 43, "teach": 42, "team": [9, 20, 24, 26, 29, 33, 36, 40, 41, 42], "technic": [1, 11, 14, 17, 34, 36, 41, 43], "tell": [13, 20, 25, 26, 27, 34, 36, 39, 41, 42, 43], "temperatur": [20, 32], "temperature_convert": 32, "templat": [5, 13, 36, 38], "tempor": 20, "ten": 43, "tend": [13, 28], "tener": 1, "term": [9, 13, 14, 17, 26, 27, 34, 36, 43], "termin": [0, 38, 39, 41, 44], "terminologi": 24, "terra": 9, "test": [0, 1, 5, 7, 11, 15, 16, 22, 23, 24, 25, 26, 27, 29, 35, 36, 37, 38, 40, 42, 43, 44], "test_add_numb": 34, "test_attribut": 27, "test_celsius_to_fahrenheit": 32, "test_client": 27, "test_mamba": 31, "test_modul": [31, 44], "testm": 39, "testpypi": 26, "text": [0, 3, 9, 11, 13, 15, 16, 29, 35, 36, 38, 39, 41], "than": [13, 14, 15, 20, 21, 22, 25, 26, 28, 31, 34, 39, 41, 42, 43], "thei": [0, 1, 4, 6, 7, 8, 9, 11, 13, 14, 15, 17, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 40, 41, 42, 43], "theirs": 9, "them": [0, 1, 7, 13, 14, 16, 20, 22, 25, 26, 32, 36, 39, 40, 41, 42, 43], "theme": [6, 25, 40, 42], "theori": 27, "therefor": 31, "thi": [0, 1, 2, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 42, 43, 44], "thing": [7, 8, 10, 11, 19, 20, 26, 27, 34, 35, 36, 38, 39, 40, 41, 42, 43], "think": [13, 20, 22, 23, 25, 28, 31, 32, 38, 40, 41, 43], "third": [8, 20], "thorough": 21, "those": [0, 1, 7, 13, 15, 16, 17, 20, 22, 23, 24, 25, 26, 27, 28, 29, 34, 36, 40, 41, 43], "thought": [11, 29], "thousand": [28, 40, 43], "three": [3, 7, 21, 22, 29, 30, 31, 35], "through": [0, 1, 7, 13, 14, 18, 19, 25, 26, 27, 31, 35, 36, 38, 39, 40, 41, 42, 43, 44], "throughout": [20, 29, 37, 40], "thu": [3, 14, 16, 22, 24, 26, 27, 28, 29, 34, 35, 40, 41, 42], "thumb": 7, "thumbnail": 15, "ti": 31, "tier": 4, "time": [1, 6, 8, 11, 14, 15, 16, 20, 21, 24, 25, 26, 28, 29, 32, 34, 35, 36, 38, 40, 41, 43, 44], "timelin": 8, "timestamp": 8, "timestampread": 8, "tip": 0, "titl": [0, 41], "todo": [0, 1, 36], "togeth": [32, 34, 39, 41], "toggl": 31, "token": [14, 36, 37], "toll": 28, "tom": [25, 43], "toml": [0, 8, 19, 20, 21, 23, 26, 27, 28, 31, 35, 41, 42], "tone": 1, "too": [0, 20, 22], "took": 42, "tool": [0, 1, 3, 5, 6, 9, 13, 14, 15, 16, 17, 19, 21, 22, 23, 24, 25, 27, 28, 30, 35, 36, 39, 40, 41, 43], "toolbox": [20, 40], "top": [0, 3, 8, 14, 15, 20, 35, 39, 42, 43], "top_level": 27, "topic": [13, 25, 27, 39, 43], "touch": 35, "toward": [14, 39], "tox": [22, 26, 31, 40], "track": [8, 26, 29, 36, 40, 41], "tracker": [8, 43], "traction": 20, "tradition": 25, "trail": 20, "transit": 44, "translat": [0, 25, 27, 41], "transpar": [8, 40], "treat": 39, "tremend": 28, "tricki": 40, "trigger": [1, 20, 29, 33, 40], "troubl": 41, "troubleshoot": [29, 41], "true": [13, 16, 32, 38], "trust": [8, 36], "truth": 29, "try": [0, 6, 13, 14, 23, 24, 31, 36, 39, 41, 42, 43], "turn": [4, 21, 29, 42], "tutori": [1, 7, 16, 17, 18, 21, 24, 25, 28, 32, 35, 36, 38, 39, 41, 42, 43, 44], "twine": [22, 26], "twitter": 6, "two": [1, 4, 15, 16, 17, 22, 24, 25, 27, 28, 34, 38, 39, 41, 42, 43], "two2iqr3": 42, "twofa": 42, "txt": [7, 22, 25, 27, 28, 39], "type": [10, 11, 15, 17, 18, 19, 20, 21, 22, 24, 26, 29, 30, 35, 39, 40, 41, 42, 43], "typic": [1, 8, 20, 32, 34], "typo": [0, 1], "tzdata": 42, "u": [22, 23, 26, 40, 43], "ubuntu": 33, "un": 1, "una": 1, "unapologet": 20, "unbuilt": [27, 42], "uncom": 39, "under": [13, 40], "underscor": 39, "understand": [1, 7, 8, 13, 16, 19, 20, 25, 26, 27, 28, 29, 31, 34, 35, 36, 39, 40, 41, 43], "undo": 40, "undocu": 26, "unexpect": 34, "unexpectedli": [31, 40], "unexplain": 34, "unhealthi": 9, "unifi": 26, "uniqu": [26, 31, 42], "unit": [27, 30, 33], "univers": 38, "unknown": 39, "unless": [1, 13, 33], "unlik": [24, 28, 31, 41], "unnecessari": 44, "unpack": 27, "unquot": 22, "unsur": [0, 13, 35], "until": [1, 26, 41], "untransl": 1, "unus": 20, "unzip": 27, "up": [2, 7, 8, 11, 14, 16, 21, 22, 26, 28, 29, 30, 31, 32, 33, 38, 40, 42], "upcom": [26, 35, 39, 40], "updat": [0, 1, 7, 8, 9, 11, 19, 20, 24, 25, 26, 35, 36, 37, 39, 40, 41, 42], "upgrad": [8, 33], "upload": [22, 26, 27, 28, 31, 33, 40], "upon": [5, 22, 23, 24, 26, 28, 29, 31, 40, 43], "upper": [26, 43], "uri": 37, "url": [0, 6, 13, 39, 42], "us": [0, 1, 2, 3, 4, 6, 7, 9, 11, 12, 17, 19, 21, 23, 24, 27, 30, 32, 33, 34, 36, 38, 39, 41], "usabl": 19, "user": [4, 5, 8, 9, 10, 11, 13, 14, 15, 16, 19, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 42, 43], "usernam": [0, 20, 27, 42], "usual": [1, 16, 24], "util": 27, "v": [39, 43], "v0": [42, 43], "v1": 8, "v2": 8, "v3": 33, "v4": [20, 33], "valid": [25, 42, 43], "valor": 1, "valu": [1, 16, 20, 25, 27, 29, 32, 34, 38, 39, 43], "valuabl": [7, 8, 11, 20, 39, 40], "var": 41, "vari": [8, 14], "variabl": [20, 29, 37, 39, 40], "variant": 0, "varieti": 14, "variou": [2, 23, 24, 30, 31, 33, 34, 40, 41, 43], "vc": 29, "ve": [14, 22, 26, 35, 38, 40, 41, 43], "vece": 1, "vendor": 41, "venv": [0, 1, 39, 42], "venv_backend": 31, "verbatim": 0, "verd": [5, 10, 16], "veri": [1, 27, 29, 41], "verifi": [0, 32, 44], "versatil": 31, "version": [0, 1, 4, 7, 13, 16, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 33, 35, 36, 38, 39, 41, 42], "vet": 36, "vez": 1, "via": [15, 26, 29, 41, 42, 44], "vibrant": 19, "view": [1, 4, 5, 7, 16, 19, 22, 25, 26, 35, 37, 39, 42], "vignett": 17, "violat": 13, "virtual": [1, 26, 31, 39, 42], "virtualenv": [31, 42], "visibl": [6, 35, 43], "visit": [13, 35], "visual": [1, 15, 20, 40], "vocal": 40, "volunt": 41, "vscode": [20, 26], "vv": 41, "w": [20, 25], "wa": [1, 3, 8, 20, 22, 24, 25, 27, 29, 34, 41, 42, 43], "wai": [0, 1, 2, 4, 13, 14, 17, 20, 23, 25, 26, 27, 29, 31, 32, 34, 36, 39, 40, 42, 43], "wait": [1, 41], "walk": [7, 18, 25, 35, 39, 40, 41, 44], "want": [0, 1, 3, 4, 5, 6, 9, 13, 14, 15, 16, 19, 20, 21, 22, 24, 27, 28, 29, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 43, 44], "warn": [0, 1, 20, 25, 29, 44], "wasser": [38, 39], "watch": 19, "water": 32, "we": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 31, 32, 35, 36, 38, 40, 41, 42, 43, 44], "web": [1, 4, 6, 26, 42], "websit": [1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 17, 25, 27, 28, 35, 39, 41, 42, 43], "weekli": 20, "welcom": [0, 5, 7, 10, 19, 38, 39, 40], "well": [1, 8, 11, 12, 13, 14, 15, 16, 17, 22, 23, 24, 26, 29, 32, 34], "were": [24, 26], "what": [9, 15, 17, 19, 20, 26, 29, 32, 37, 42], "whatev": [5, 27, 31, 33], "wheel": [19, 24, 25, 26, 37, 39, 40, 41], "when": [2, 6, 8, 11, 12, 14, 16, 17, 20, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 34, 35, 36, 38, 39, 41, 42], "whenev": [0, 17, 22], "where": [0, 1, 4, 8, 15, 17, 20, 23, 25, 26, 29, 31, 32, 34, 39, 41, 42, 43, 44], "wherea": [24, 27, 40, 43], "wherev": [41, 43], "whether": [13, 20, 22, 25, 28, 36, 40], "which": [0, 4, 5, 7, 9, 13, 14, 16, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 35, 36, 39, 40, 41, 42, 43], "while": [0, 3, 5, 6, 8, 11, 13, 20, 21, 24, 25, 26, 27, 28, 29, 33, 36, 38, 39, 40, 42, 43], "whitespac": 20, "whl": [24, 26, 42], "who": [1, 7, 8, 17, 18, 23, 24, 25, 27, 28, 36, 41, 42, 43], "whole": [0, 32], "whose": 27, "why": [0, 22, 23, 24, 30, 35], "wide": [1, 3, 8, 16, 19, 29, 42], "wiki": 13, "willing": 41, "window": [0, 20, 22, 27, 31, 33, 37, 38, 39, 41], "winner": 26, "wish": [4, 7, 11, 20, 21, 25, 26, 27, 31, 33, 35, 39, 41, 42, 43], "within": [0, 14, 16, 17, 20, 22, 23, 24, 25, 28, 29, 31, 35, 36, 39, 40, 43], "without": [1, 13, 20, 22, 26, 27, 31, 33, 34, 39, 40, 42], "won": [7, 20, 26, 28, 31, 34, 36, 38], "wonder": [24, 34, 40], "word": [13, 25, 29, 39, 42], "work": [0, 4, 11, 13, 15, 16, 19, 20, 21, 22, 24, 25, 26, 28, 29, 31, 32, 33, 34, 36, 39, 40, 42, 43, 44], "workflow": [1, 7, 11, 16, 17, 19, 21, 22, 23, 27, 28, 29, 31, 32, 33, 36, 40], "world": 42, "worri": [20, 27, 31, 32, 41, 42, 43], "worth": 28, "worthi": 39, "would": [0, 1, 13, 20, 28, 29, 31, 32, 34, 36, 39, 40], "wrap": [14, 23, 24, 26], "wrapper": 14, "write": [0, 1, 2, 3, 5, 7, 8, 14, 15, 16, 19, 20, 26, 29, 30, 31, 32, 40], "written": [0, 1, 5, 17, 21, 22, 23, 24, 25, 26, 34, 40, 41, 43], "wrong": 29, "wrote": 43, "www": [1, 13, 43], "x": [0, 25, 26, 27, 29, 41, 43], "x64": 38, "xarrai": [28, 31], "xclim": 25, "xml": [6, 8], "xmltodict": 8, "y": 1, "yaml": [4, 20, 22, 24, 41], "ye": [26, 35], "year": [3, 19, 22, 24, 25, 32, 43], "yearly_mean": 32, "yet": [0, 1, 35, 36, 39, 42, 43], "yield": 24, "yml": [27, 33], "you": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 16, 17, 18, 19, 20, 21, 27, 28, 30, 32, 33, 34, 36, 37, 38, 44], "youpackagenameher": 42, "your": [5, 9, 19, 21, 23, 27, 32, 33, 44], "youremail": 39, "yourpackag": 41, "yourself": [0, 4, 9, 28, 40], "yourusernam": 39, "zenodo": [13, 28, 36], "zip": [24, 27], "zsh": 39}, "titles": ["Contributing to the Python Packaging Guide", "Translation Guide for the Python Packaging Guide", "Tools to Build and Host your Documentation", "Documentation syntax: markdown vs. myST vs. rst syntax to create your docs", "How to publish your Python package documentation online", "Using Sphinx to Build Python Package Documentation", "Optimizing your documentation so search engines (and other users) find it", "Documentation for your Open Source Python Package", "CHANGELOG.md Guide", "The CODE_OF_CONDUCT file - Python Packaging", "Contributing File in your Python Open Source Package", "What the development guide for your Python package should contain", "Documentation Files That Should be in your Python Package Repository", "License files for scientific Python open source software", "README File Guidelines and Resources", "Create tutorials in your Python package documentation", "Document the code in your package\u2019s API using docstrings", "Create User Facing Documentation for your Python Package", "Writing user-facing documentation for your Python package", "pyOpenSci Python Package Guide", "Python Package Code Style, Format and Linters", "Complex Python package builds", "Python Package Dependencies", "Python package structure information", "Publishing Your Package In A Community Repository: PyPI or Anaconda.org", "Use a pyproject.toml file for your package configuration & metadata", "Python Packaging Tools", "Learn about Building a Python Package", "Python Package Structure for Scientific Python Projects", "Creating New Versions of Your Python Package", "Tests and data for your Python package", "Run Python package tests", "Test Types for Python packages", "Run tests with Continuous Integration", "Write tests for your Python package", "Add a LICENSE & CODE_OF_CONDUCT to your Python package", "Add a README file to your Python package", "Command Line Reference Guide", "Get to Know Hatch", "Make your Python code installable", "Python packaging 101", "Publish your Python package that is on PyPI to conda-forge", "Publish your Python package to PyPI", "Make your Python package PyPI ready - pyproject.toml", "Using Hatch to Migrate setup.py to a pyproject.toml"], "titleterms": {"": [7, 14, 16, 23, 24, 38, 40, 42], "0": 36, "1": [7, 29, 36, 38, 39, 41, 42, 43], "101": 40, "2": [7, 29, 36, 38, 39, 41, 42, 43], "2fa": 42, "3": [29, 36, 38, 39, 41, 42, 43], "3b": 41, "4": [29, 36, 38, 39, 41, 42, 43], "5": [36, 39, 43], "6": [36, 39, 43], "7": 36, "8": 36, "A": [14, 19, 22, 24, 29], "For": 22, "If": [24, 42], "In": 24, "Of": 14, "That": 12, "The": [1, 9, 28, 36, 39, 40, 42], "__init__": 39, "about": [13, 19, 25, 26, 27, 28, 29, 39, 41, 42, 43], "accommod": 24, "account": 42, "across": 31, "action": 33, "ad": [16, 22, 41], "add": [22, 25, 35, 36, 39, 41, 43], "addit": [0, 14, 22, 24, 35, 36], "adjust": 39, "advanc": 25, "after": 44, "all": 43, "also": 40, "am": 1, "an": [13, 16, 26, 27, 35, 39, 40], "anaconda": 24, "analyt": 6, "ani": [14, 36], "annex": 0, "api": 16, "applic": 20, "approach": 0, "ar": [1, 13, 23, 28, 40], "archiv": 27, "ask": 1, "authent": 42, "author": 43, "autom": 31, "avoid": 29, "awai": [20, 24, 25], "back": [26, 29], "backend": 21, "badg": [14, 36], "bare": 39, "base": [29, 42], "basic": [7, 39], "befor": [0, 40, 44], "below": 42, "benefit": [15, 25, 28], "best": 16, "better": 16, "bewar": 16, "black": 20, "both": 24, "branch": 0, "brief": [14, 24, 39], "bubbl": [35, 36, 41, 43], "bug": 41, "build": [0, 1, 2, 5, 15, 21, 25, 26, 27, 29, 42], "bump": 29, "c": 26, "can": [1, 5, 13, 22, 24, 26, 29], "case": 34, "caution": 43, "cd": 0, "cfg": 27, "challeng": [15, 26, 28], "chang": [0, 1], "changelog": 8, "channel": 24, "check": [20, 38], "checklist": 41, "choos": [13, 26], "chose": [13, 26], "ci": [0, 20, 33, 41], "citat": [13, 14, 36], "class": [35, 36, 41, 42, 43], "classifi": [39, 43], "clean": 40, "clone": [0, 41], "close": [13, 38], "code": [0, 13, 14, 16, 20, 35, 36, 39, 40], "code_of_conduct": [9, 35], "combin": 22, "command": 37, "commit": [0, 20], "commonli": 5, "commun": [14, 19, 24, 36], "compar": 32, "comparison": 38, "complet": 43, "complex": [21, 25], "compon": 17, "comput": 0, "con": 29, "conda": [22, 24, 31, 40, 41, 43], "conduct": [14, 35], "config": 38, "configur": [25, 38], "conflict": 24, "congratul": [39, 41, 42], "consid": 40, "contain": [10, 11, 14], "continu": [14, 33, 40], "contribut": [0, 1, 10, 14, 19], "contributor": [7, 40], "control": [29, 40], "copyleft": 13, "core": [17, 22, 28], "correctli": 38, "cover": 39, "coverag": 14, "creat": [0, 3, 15, 17, 19, 22, 27, 29, 36, 39, 40, 41, 42], "critic": 7, "current": 14, "custom": 5, "data": [28, 30], "dataset": 28, "declar": 22, "demonstr": 14, "depend": [0, 22, 24, 25, 26, 43], "deploy": 40, "descript": [14, 36, 43], "determin": 13, "develop": [0, 11, 37, 42], "directori": [35, 39, 44], "discov": 28, "distribut": [27, 28, 42], "do": [1, 8, 22, 25, 26, 28, 34, 39], "doc": [3, 4, 15, 22], "docstr": 16, "doctest": 16, "document": [0, 1, 2, 3, 4, 5, 6, 7, 12, 14, 15, 16, 17, 18, 19, 40], "doe": [8, 14, 16, 22, 28, 36, 39, 40], "don": 28, "dr": 0, "e": 39, "easi": 14, "easier": 20, "ecosystem": [26, 35], "edg": 34, "edit": [0, 1, 38], "element": [7, 17, 40], "email": [38, 43], "end": [26, 29, 32, 42], "engin": 6, "english": 1, "environ": [0, 1, 22, 31, 37, 39, 40, 42], "evolut": 24, "exampl": [0, 9, 10, 13, 16, 20, 22, 25, 26, 27, 28, 29, 33, 34, 40, 43], "expect": [0, 27, 40], "extens": [5, 21, 26], "fa": [35, 36, 41, 42, 43], "face": [17, 18], "factor": 42, "failur": 41, "faq": 1, "favorit": 20, "featur": [26, 38], "feedstock": 41, "field": 25, "file": [0, 1, 9, 10, 12, 13, 14, 22, 25, 27, 35, 36, 38, 39, 42, 43], "find": 6, "finish": 36, "first": 39, "fit": 22, "fix": 41, "flake8": 20, "flat": 28, "flit": [26, 42], "follow": [13, 42], "footnot": [35, 39, 41, 42], "forg": [24, 40, 41, 43], "fork": [0, 41], "format": [1, 16, 20, 25, 27, 43], "formatt": 20, "four": 17, "framework": 31, "frequent": 1, "from": [0, 13, 22, 39, 42], "front": 26, "frontend": 21, "fulli": 36, "function": [16, 32, 36], "galleri": 15, "gener": [5, 20], "get": [0, 1, 36, 38, 44], "git": [20, 29, 40], "github": [0, 4, 22, 27, 33, 39, 40], "gitlab": [22, 40], "good": [14, 17], "googl": 6, "gradual": 16, "grayskul": 41, "group": 22, "guid": [0, 1, 8, 11, 14, 19, 23, 37, 42, 44], "guidebook": 19, "guidelin": [13, 14, 23], "ha": [1, 40], "hand": [35, 36, 41, 43], "handl": 1, "happen": [0, 1, 25, 27, 43], "hatch": [26, 29, 38, 39, 42, 44], "hatch_vc": 29, "hatchl": [25, 29, 43], "have": [41, 42], "head": 19, "help": [0, 1], "here": [23, 26], "hint": 16, "histori": 24, "home": 41, "hook": 20, "host": 2, "how": [0, 1, 4, 8, 13, 14, 16, 20, 22, 24, 25, 27, 28, 34, 35, 40, 41, 43], "i": [0, 1, 4, 7, 8, 11, 13, 16, 19, 22, 24, 25, 27, 31, 34, 35, 36, 39, 40, 41, 42, 43, 44], "imag": 1, "import": [1, 8, 11, 13, 25, 28, 39], "includ": [8, 25, 28], "incorrect": 43, "increment": 29, "inform": [14, 23, 36], "infrastructur": 40, "init": 44, "instal": [0, 14, 22, 36, 38, 39, 40, 41, 42], "instruct": [14, 36], "integr": [14, 32, 33, 40], "interest": 1, "introduct": 8, "isort": 20, "issu": 40, "jupyt": 15, "just": 40, "kei": 29, "know": [1, 34, 38, 44], "land": 17, "languag": [1, 21], "layout": 28, "learn": [23, 26, 27, 35, 36, 40, 41, 42, 43, 44], "lesson": 39, "licens": [13, 35, 43], "life": 20, "like": [8, 16, 28, 29, 42], "line": [1, 37], "link": [1, 14], "lint": 20, "linter": 20, "list": 1, "live": 35, "ll": 31, "local": [0, 1, 20, 39], "long": 1, "look": [7, 8, 28, 39, 40], "m": [22, 39], "magic": [41, 42], "mai": 22, "maintain": [8, 24, 40, 41, 43], "make": [0, 13, 20, 39, 40, 43], "mamba": 31, "manag": [24, 29], "manual": [29, 35, 42], "markdown": [0, 3], "matplotlib": 40, "md": [8, 10, 14, 36], "metadata": [25, 27, 39, 43], "method": 16, "might": 26, "migrat": [25, 44], "minimum": 39, "mix": 21, "modifi": 39, "modul": [28, 39], "more": [24, 26, 40, 42, 43], "most": 28, "much": [14, 16], "my": 1, "myst": 3, "name": [14, 36, 38, 39, 43], "nbsphinx": 15, "need": [1, 9, 28, 39], "never": 28, "new": [0, 1, 19, 29, 39, 43], "next": [7, 38, 40, 43], "non": 26, "note": [22, 29, 39, 44], "notebook": 15, "now": 40, "nox": 31, "number": 29, "numpi": 16, "object": [35, 36, 40, 41, 42, 43, 44], "offer": 29, "onlin": 4, "open": [7, 10, 13, 17, 38], "opengraph": 6, "oper": 31, "optim": 6, "option": [22, 25, 39, 42, 43], "org": 24, "origin": 1, "other": [6, 21, 22, 29, 31, 38, 40], "our": 42, "out": 39, "outlin": 13, "overview": [1, 35, 39], "packag": [0, 1, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 41, 42, 43], "page": [4, 17], "pdm": [26, 29], "peer": 28, "pen": 41, "permiss": 13, "pin": [26, 43], "pip": [22, 24, 27, 39], "poetri": [26, 42], "possibl": [13, 36], "potenti": 7, "pr": 1, "pre": 20, "prepar": 1, "prerequisit": 44, "previous": 39, "priorit": 28, "pro": 29, "process": [0, 1], "project": [21, 25, 27, 28, 39, 40, 43], "provid": 36, "public": [41, 42], "publish": [4, 24, 37, 40, 41, 42, 43], "pull": [0, 33, 41], "pure": [21, 26], "put": [35, 43], "py": [25, 27, 39, 44], "pyopensci": [7, 19, 23, 28, 40], "pyospackag": 39, "pypi": [24, 27, 40, 41, 42, 43], "pyproject": [22, 25, 29, 39, 43, 44], "pytest": 31, "python": [0, 1, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 39, 40, 41, 42, 43], "question": 1, "read": [4, 22], "readabl": 40, "readi": [1, 43], "readm": [14, 36, 43], "recip": 41, "recommend": [13, 23], "recurs": 25, "refer": [13, 37], "referenc": 0, "regular": 41, "relat": [16, 40], "releas": [1, 8, 29], "repositori": [0, 12, 24, 41], "request": [0, 33, 41], "requir": [14, 22, 23, 25, 28, 43], "research": 40, "resourc": [0, 14, 22, 24, 35], "reus": 13, "review": [0, 1, 7, 23, 26, 28], "rst": 3, "ruff": 20, "rule": 29, "run": [15, 16, 20, 31, 33, 38], "sampl": 44, "scientif": [13, 28, 35], "scientist": 19, "scipi": 13, "scm": 29, "scope": 40, "sdist": [27, 42], "search": 6, "section": [7, 8, 14, 36, 41], "see": [22, 31], "semant": [8, 29], "semver": 29, "seri": 19, "set": [1, 20, 22, 39], "setup": [14, 25, 27, 29, 36, 37, 39, 42, 44], "setuptool": [25, 26, 29], "setuptools_scm": 29, "shell": 22, "short": 14, "should": [10, 11, 12, 14, 31, 35, 40], "show": 38, "simplifi": 26, "singl": 1, "site": 5, "sitemap": 6, "snippet": 36, "so": 6, "softwar": 13, "solid": [35, 36, 41, 42, 43], "sometim": 28, "sourc": [7, 10, 13, 17, 27, 28], "sparkl": [41, 42], "specif": [28, 42], "specifi": 43, "sphinx": [5, 6, 15], "sphinxext": 6, "squar": 41, "src": 28, "stage": 41, "start": [1, 36], "static": 5, "step": [26, 36, 38, 39, 41, 42, 43, 44], "still": 25, "store": [13, 22, 40], "string": 1, "structur": [0, 23, 28, 39], "style": [16, 20], "styler": 20, "submit": [0, 1, 24, 41], "success": 7, "suggest": [23, 26], "suit": 28, "summari": [20, 26], "support": [22, 26, 40], "sure": 13, "syntax": 3, "system": 31, "t": 28, "tabl": [25, 26, 31, 43], "tag": 29, "take": [20, 24, 25], "takewai": 29, "templat": 41, "test": [14, 19, 28, 30, 31, 32, 33, 34, 39, 41], "testpypi": 42, "text": 1, "than": 40, "theme": 5, "thi": [7, 19, 23, 39, 40], "thing": 14, "three": [16, 32], "ticket": 40, "time": [39, 42], "tip": 41, "titl": 36, "tl": 0, "todo": [7, 19, 22, 25, 31, 32, 33, 38, 39, 40, 42, 43], "togeth": 43, "token": 42, "toml": [22, 25, 29, 38, 39, 43, 44], "too": [1, 14, 16], "tool": [2, 7, 20, 26, 29, 31, 38, 42], "top": 36, "tracker": 40, "translat": 1, "tree": 44, "trust": 42, "turn": 40, "tutori": [14, 15, 19, 40], "two": [0, 7], "type": [7, 16, 32, 34], "understand": [14, 22], "unit": 32, "unreleas": 8, "up": [1, 20, 35, 36, 39, 41, 43], "updat": [29, 38, 43], "upload": 42, "url": [41, 43], "us": [5, 8, 13, 14, 15, 16, 20, 22, 25, 26, 28, 29, 31, 35, 40, 42, 43, 44], "usabl": 17, "user": [6, 7, 17, 18, 22, 24, 34, 40], "v": [3, 4, 20, 21, 22, 25, 26, 27, 29, 40, 42], "valu": 42, "ve": 42, "venv": 31, "version": [8, 14, 29, 31, 37, 40, 43], "via": 0, "virtual": 0, "wai": [22, 35], "wand": [41, 42], "want": [26, 42], "we": [16, 26, 39], "websit": 0, "well": 40, "what": [0, 1, 4, 7, 8, 10, 11, 13, 14, 16, 22, 23, 24, 25, 27, 28, 31, 34, 35, 36, 38, 39, 40, 41, 43, 44], "wheel": [27, 28, 42], "when": [0, 1, 13, 15, 25, 40, 43], "where": [13, 19, 22, 24, 35], "which": 1, "whl": 27, "who": [19, 40], "why": [8, 9, 11, 13, 16, 26, 28, 34, 39, 40, 41, 42], "wild": 31, "work": [1, 41], "workflow": [20, 26, 42], "wrap": [35, 36, 41, 43], "write": [17, 18, 34], "xclim": 27, "yai": 40, "yml": 22, "you": [0, 9, 13, 15, 22, 23, 24, 25, 26, 29, 31, 35, 39, 40, 41, 42, 43], "your": [0, 1, 2, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 24, 25, 26, 28, 29, 30, 31, 34, 35, 36, 38, 39, 40, 41, 42, 43], "zsh": 22}}) \ No newline at end of file +Search.setIndex({"alltitles": {"1. Basic Tool Users": [[7, "basic-tool-users"]], "2. Potential tool contributors": [[7, "potential-tool-contributors"]], "4 Steps for publishing a Python package on TestPyPI (or PyPI)": [[42, "steps-for-publishing-a-python-package-on-testpypi-or-pypi"]], " How to Publish your package on conda-forge": [[41, "how-to-publish-your-package-on-conda-forge"]], " Wrap up": [[35, "wrap-up"], [36, "wrap-up"], [41, "wrap-up"], [43, "wrap-up"]], " Congratulations - you have added your package to conda-forge.": [[41, "congratulations-you-have-added-your-package-to-conda-forge"]], " Congratulations - you\u2019ve created your Python package distribution files ": [[42, "congratulations-you-ve-created-your-python-package-distribution-files"]], "A brief history of conda\u2019s evolution": [[24, null]], "A community-created guidebook": [[19, "a-community-created-guidebook"]], "A dependency example": [[22, null]], "A note about versioning": [[29, null]], "A note for conda users": [[22, null]], "About the .toml format": [[25, "about-the-toml-format"], [43, "about-the-toml-format"]], "About the Python package directory structure": [[39, "about-the-python-package-directory-structure"]], "About the basic package directory structure": [[39, "about-the-basic-package-directory-structure"]], "About the pyproject.toml file": [[25, "about-the-pyproject-toml-file"]], "About this guide": [[19, null]], "About this lesson": [[39, null]], "Add a LICENSE & CODE_OF_CONDUCT to your Python package": [[35, null]], "Add a README file to your Python package": [[36, null]], "Add dependencies to your pyproject.toml file": [[25, "add-dependencies-to-your-pyproject-toml-file"]], "Add required dependencies to your pyproject.toml file": [[22, "add-required-dependencies-to-your-pyproject-toml-file"]], "Adding type hints to your docstrings": [[16, "adding-type-hints-to-your-docstrings"]], "Additional Code of Conduct resources": [[35, null]], "Additional dependency resources": [[22, null]], "Additional help": [[0, "additional-help"]], "Additional resources": [[0, "additional-resources"], [24, null]], "Advanced options in the pyproject.toml file": [[25, "advanced-options-in-the-pyproject-toml-file"]], "After hatch init": [[44, "after-hatch-init"]], "An ecosystem of Python build tools": [[26, "an-ecosystem-of-python-build-tools"]], "An example - xclim": [[27, "an-example-xclim"]], "An example of how a license determine how code can be reused": [[13, null]], "An overview of licenses in the scientific Python ecosystem": [[35, null]], "Annex": [[0, "annex"]], "Author names & emails": [[43, null]], "Avoid manually updating Python package version numbers if you can": [[29, "avoid-manually-updating-python-package-version-numbers-if-you-can"]], "Before hatch init": [[44, "before-hatch-init"]], "Before you submit your pull request": [[0, "before-you-submit-your-pull-request"]], "Benefits of using a pyproject.toml file": [[25, "benefits-of-using-a-pyproject-toml-file"]], "Benefits of using the flat layout in your Python package": [[28, "benefits-of-using-the-flat-layout-in-your-python-package"]], "Best: a docstring with example use of the function": [[16, "best-a-docstring-with-example-use-of-the-function"]], "Beware of too much type hinting": [[16, null]], "Black": [[20, "black"]], "Brief overview of the TOML file": [[39, null]], "Build back-end support for non pure-python packages": [[26, "build-back-end-support-for-non-pure-python-packages"]], "Build back-ends": [[26, "build-back-ends"]], "Build front-end vs. build back-end tools": [[26, "build-front-end-vs-build-back-end-tools"]], "Building the Translated Documentation": [[1, "building-the-translated-documentation"]], "CHANGELOG.md Guide": [[8, null]], "CI & pull requests": [[33, "ci-pull-requests"]], "Challenges using setuptools": [[26, "challenges-using-setuptools"]], "Challenges with PDM": [[26, "challenges-with-pdm"]], "Challenges with Poetry": [[26, "challenges-with-poetry"]], "Challenges with Poetry dependency pinning": [[26, null]], "Challenges with including tests and data in a package wheel": [[28, null]], "Check that hatch installed correctly": [[38, "check-that-hatch-installed-correctly"]], "Choosing a build back-end": [[26, "choosing-a-build-back-end"]], "Chose a build workflow tool": [[26, "chose-a-build-workflow-tool"]], "Clone your forked repository": [[0, "clone-your-forked-repository"]], "Code Formatters (and stylers)": [[20, "code-formatters-and-stylers"]], "Code Linting": [[20, "code-linting"]], "Code examples": [[0, "code-examples"]], "Code linting, formatting and styling tools": [[20, "code-linting-formatting-and-styling-tools"]], "Code should also be clean & readable & documented": [[40, "code-should-also-be-clean-readable-documented"]], "Combining sets of dependencies": [[22, "combining-sets-of-dependencies"]], "Command Line Reference Guide": [[37, null]], "Commit your changes": [[0, "commit-your-changes"]], "Commonly used Sphinx themes": [[5, "commonly-used-sphinx-themes"]], "Comparing unit, integration and end-to-end tests": [[32, "comparing-unit-integration-and-end-to-end-tests"]], "Comparison to other tools": [[38, null]], "Complex Python package builds": [[21, null]], "Conda-forge publication steps": [[41, "conda-forge-publication-steps"]], "Configure Hatch": [[38, "configure-hatch"]], "Congratulations! You created your first Python package": [[39, "congratulations-you-created-your-first-python-package"]], "Continuous integration and continuous deployment": [[40, "continuous-integration-and-continuous-deployment"]], "Contributing": [[19, "contributing"]], "Contributing File in your Python Open Source Package": [[10, null]], "Contributing locally on your computer": [[0, "contributing-locally-on-your-computer"]], "Contributing to the Python Packaging Guide": [[0, null]], "Contributing via the GitHub website": [[0, "contributing-via-the-github-website"]], "Copyleft licenses": [[13, null]], "Core components of user-facing Python package documentation": [[17, "core-components-of-user-facing-python-package-documentation"]], "Core scientific Python packages that use the flat layout": [[28, null]], "Create Python package tutorials that run when you build your docs": [[15, "create-python-package-tutorials-that-run-when-you-build-your-docs"]], "Create User Facing Documentation for your Python Package": [[17, null]], "Create a README.md file for your package": [[36, "create-a-readme-md-file-for-your-package"]], "Create a new branch": [[0, "create-a-new-branch"]], "Create a virtual environment": [[0, "create-a-virtual-environment"]], "Create optional dependency groups": [[22, "create-optional-dependency-groups"]], "Create tutorials in your Python package documentation": [[15, null]], "Creating New Versions of Your Python Package": [[29, null]], "Creating code for documentation": [[0, "creating-code-for-documentation"]], "Dependencies can be added to your pyproject.toml file": [[22, null]], "Dependencies in Read the Docs": [[22, "dependencies-in-read-the-docs"]], "Docstring examples Better and Best": [[16, "docstring-examples-better-and-best"]], "Document the code in your package\u2019s API using docstrings": [[16, null]], "Documentation": [[19, "documentation"]], "Documentation Files That Should be in your Python Package Repository": [[12, null]], "Documentation elements that pyOpenSci looks for reviewing a Python package": [[7, "documentation-elements-that-pyopensci-looks-for-reviewing-a-python-package"]], "Documentation for your Open Source Python Package": [[7, null]], "Documentation is critical for your Python package\u2019s success": [[7, "documentation-is-critical-for-your-python-package-s-success"]], "Documentation syntax: markdown vs. myST vs. rst syntax to create your docs": [[3, null]], "Don\u2019t include test suite datasets in your package": [[28, "don-t-include-test-suite-datasets-in-your-package"]], "Don\u2019t include tests in your package wheel": [[28, "don-t-include-tests-in-your-package-wheel"]], "Editing the Translation Files": [[1, "editing-the-translation-files"]], "End-to-end (functional) tests": [[32, "end-to-end-functional-tests"]], "Environment Setup": [[37, "environment-setup"]], "Example CODE_OF_CONDUCT files": [[9, null]], "Example GitHub Actions that runs tests": [[33, "example-github-actions-that-runs-tests"]], "Example application of isort": [[20, "example-application-of-isort"]], "Example build steps that can be simplified using a front-end tool": [[26, "example-build-steps-that-can-be-simplified-using-a-front-end-tool"]], "Example contributing files": [[10, null]], "Example pyproject.toml files": [[43, "example-pyproject-toml-files"]], "Example pyproject.toml for building using hatchling": [[25, "example-pyproject-toml-for-building-using-hatchling"]], "Example pyproject.toml for building using setuptools": [[25, "example-pyproject-toml-for-building-using-setuptools"]], "Example scientific packages that use src/package layout": [[28, null]], "Flake8": [[20, "flake8"]], "Flit": [[26, "flit"]], "Flit Features": [[26, "flit-features"]], "Follow the steps below to create your token.": [[42, "follow-the-steps-below-to-create-your-token"]], "Footnotes": [[35, "footnotes"], [39, "footnotes"], [41, "footnotes"], [42, "footnotes"]], "For zsh shell users": [[22, null]], "Forking the repository": [[0, "forking-the-repository"]], "Four elements of a good open source documentation landing page": [[17, "four-elements-of-a-good-open-source-documentation-landing-page"]], "Frequently Asked Questions (FAQ)": [[1, "frequently-asked-questions-faq"]], "General pre commit checks": [[20, "general-pre-commit-checks"]], "Get to Know Hatch": [[38, null]], "Get to know Hatch": [[44, null]], "GitHub & GitLab vs. Git": [[40, null]], "GitHub archive vs sdist": [[27, null]], "Google Analytics": [[6, "google-analytics"]], "Gradually adding type hints": [[16, "gradually-adding-type-hints"]], "Guidelines for pyOpenSci\u2019s packaging recommendations": [[23, "guidelines-for-pyopensci-s-packaging-recommendations"]], "Hatch": [[26, "hatch"]], "Hatch (or other tools like PDM) Cons": [[29, "hatch-or-other-tools-like-pdm-cons"]], "Hatch (or other tools like PDM) Pros": [[29, "hatch-or-other-tools-like-pdm-pros"]], "Hatch and environments": [[42, "hatch-and-environments"]], "Hatch and project names": [[39, null]], "Hatch example setup in your pyproject.toml": [[29, "hatch-example-setup-in-your-pyproject-toml"]], "Hatch features": [[26, "hatch-features"], [38, "hatch-features"]], "How Python discovers and prioritizes importing modules": [[28, null]], "How can I get help with my translation?": [[1, "how-can-i-get-help-with-my-translation"]], "How do I handle formatting in the translated text?": [[1, "how-do-i-handle-formatting-in-the-translated-text"]], "How do I handle links in the translated text?": [[1, "how-do-i-handle-links-in-the-translated-text"]], "How do I handle strings that are too long for a single line?": [[1, "how-do-i-handle-strings-that-are-too-long-for-a-single-line"]], "How do I know what type of tests to write?": [[34, "how-do-i-know-what-type-of-tests-to-write"]], "How do I know when a translation is ready to be released?": [[1, "how-do-i-know-when-a-translation-is-ready-to-be-released"]], "How do I know which strings need to be translated?": [[1, "how-do-i-know-which-strings-need-to-be-translated"]], "How do I translate images?": [[1, "how-do-i-translate-images"]], "How do maintainers use it?": [[8, "how-do-maintainers-use-it"]], "How do you declare dependencies?": [[22, "how-do-you-declare-dependencies"]], "How does this relate to code for a research project?": [[40, null]], "How is pyproject.toml metadata used?": [[43, "how-is-pyproject-toml-metadata-used"]], "How publishing to conda-forge works": [[41, "how-publishing-to-conda-forge-works"]], "How the Python Packaging Guide is structured": [[0, "how-the-python-packaging-guide-is-structured"]], "How the pyproject.toml is used when you build a package": [[25, "how-the-pyproject-toml-is-used-when-you-build-a-package"]], "How this content is developed": [[23, null]], "How to add a CODE_OF_CONDUCT file to your package directory": [[35, "how-to-add-a-code-of-conduct-file-to-your-package-directory"]], "How to add a LICENSE file to your package directory": [[35, "how-to-add-a-license-file-to-your-package-directory"]], "How to add a LICENSE to your package - the manual way": [[35, "how-to-add-a-license-to-your-package-the-manual-way"]], "How to build the guide locally": [[0, "how-to-build-the-guide-locally"]], "How to choose a license": [[13, "how-to-choose-a-license"]], "How to commit your changes": [[0, "how-to-commit-your-changes"]], "How to create the distribution format that PyPI and Pip expects?": [[27, "how-to-create-the-distribution-format-that-pypi-and-pip-expects"]], "How to edit a MarkDown file": [[0, "how-to-edit-a-markdown-file"]], "How to get help": [[0, "how-to-get-help"]], "How to make a pull request": [[0, "how-to-make-a-pull-request"]], "How to publish your Python package documentation online": [[4, null]], "How to submit to conda-forge": [[24, "how-to-submit-to-conda-forge"]], "How to update your pyproject.toml file": [[43, "how-to-update-your-pyproject-toml-file"]], "How to use code formatter in your local workflow": [[20, "how-to-use-code-formatter-in-your-local-workflow"]], "I am interested in translating the guide into a language that is not listed. How can I get started?": [[1, "i-am-interested-in-translating-the-guide-into-a-language-that-is-not-listed-how-can-i-get-started"]], "Important": [[1, null], [1, null]], "Important pyproject.toml take aways": [[25, null]], "Important: make sure that you closely follow the guidelines outlines by the License that you chose": [[13, "important-make-sure-that-you-closely-follow-the-guidelines-outlines-by-the-license-that-you-chose"]], "Install Hatch": [[38, "install-hatch"]], "Install dependency groups": [[22, "install-dependency-groups"]], "Install the development dependencies": [[0, "install-the-development-dependencies"]], "Install your package from TestPyPI": [[42, "install-your-package-from-testpypi"]], "Installing packages from GitHub": [[39, null]], "Installing packages from GitHub / Gitlab": [[22, null]], "Integration tests": [[32, "integration-tests"]], "Introduction": [[8, "introduction"]], "Isort": [[20, "isort"]], "Issues or Ticket Trackers": [[40, "issues-or-ticket-trackers"]], "Key Takeways": [[29, null]], "Learn about Building a Python Package": [[27, null]], "Learn more about building Python packages in our guide": [[42, null]], "Learn more about building a Python package": [[42, null]], "Learn more about flit": [[26, null]], "Learning Objectives": [[40, null], [41, null], [42, null], [43, null], [44, null]], "Learning objectives": [[35, null], [36, null]], "License files for scientific Python open source software": [[13, null]], "License recommendations from the SciPy package": [[13, null]], "Licenses for the scientific Python ecosystem": [[35, null]], "Linters, code formatters and your favorite coding tools": [[20, "linters-code-formatters-and-your-favorite-coding-tools"]], "Linting vs format and style": [[20, "linting-vs-format-and-style"]], "Look for pyospackage in your environment": [[39, "look-for-pyospackage-in-your-environment"]], "Maintaining a conda-forge package": [[41, "maintaining-a-conda-forge-package"]], "Maintaining your conda-forge feedstock": [[41, "maintaining-your-conda-forge-feedstock"]], "Maintaining your conda-forge package repository": [[24, "maintaining-your-conda-forge-package-repository"]], "Make your Python code installable": [[39, null]], "Make your Python package PyPI ready - pyproject.toml": [[43, null]], "Making your package installable - publishing to PyPI & conda-forge": [[40, "making-your-package-installable-publishing-to-pypi-conda-forge"]], "Managing Python package dependency conflicts": [[24, "managing-python-package-dependency-conflicts"]], "Matplotlib as an example": [[40, null]], "Mixing frontend and backend projects": [[21, "mixing-frontend-and-backend-projects"]], "More on hatchling": [[43, null]], "Next (optional) step - publishing to conda-forge": [[43, "next-optional-step-publishing-to-conda-forge"]], "Note": [[44, null]], "Note about setup.py": [[39, null]], "Nox with conda / mamba": [[31, "nox-with-conda-mamba"]], "Nox with venv environments": [[31, "nox-with-venv-environments"]], "OPTIONAL: Adjust project classifiers": [[39, "optional-adjust-project-classifiers"]], "OPTIONAL: If you want to use a manual token-based publication workflow": [[42, "optional-if-you-want-to-use-a-manual-token-based-publication-workflow"]], "Optimizing your documentation so search engines (and other users) find it": [[6, null]], "Optional dependencies": [[22, "optional-dependencies"], [22, "id2"]], "Optional fields to include in the [project] table": [[25, "optional-fields-to-include-in-the-project-table"]], "Optional vs. Required pyproject.toml file fields": [[25, "optional-vs-required-pyproject-toml-file-fields"]], "Other automation tools you\u2019ll see in the wild": [[31, null]], "Other ways you may see packages storing dependencies": [[22, null]], "Overview of the Translation Process": [[1, "overview-of-the-translation-process"]], "PDM": [[26, "pdm"]], "PDM Features": [[26, "pdm-features"]], "PDM support for C and C++ extensions": [[26, null]], "PDM vs. Poetry": [[26, null]], "Package Development": [[37, "package-development"]], "Package Publishing": [[37, "package-publishing"]], "Package tool features table": [[26, "package-tool-features-table"]], "Package-specific token vs trusted publisher": [[42, "package-specific-token-vs-trusted-publisher"]], "Packages are more than just code - Infrastructure": [[40, "packages-are-more-than-just-code-infrastructure"]], "Packages that you expect others to use should be well-scoped": [[40, "packages-that-you-expect-others-to-use-should-be-well-scoped"]], "Pin dependencies with caution": [[43, null]], "Poetry": [[26, "poetry"]], "Poetry features": [[26, "poetry-features"]], "Pre-commit hook example workflow": [[20, "pre-commit-hook-example-workflow"]], "Pre-commit.ci": [[20, "pre-commit-ci"]], "Preparing the Translation Files": [[1, "preparing-the-translation-files"]], "Prerequisites": [[44, "prerequisites"]], "Project metadata and PyPI": [[27, "project-metadata-and-pypi"]], "Provide a fully functional code snippet if possible": [[36, null]], "Publish a new version of your package to PyPI": [[43, "publish-a-new-version-of-your-package-to-pypi"]], "Publish your Python package that is on PyPI to conda-forge": [[41, null]], "Publish your Python package to PyPI": [[42, null]], "Publishing Your Package In A Community Repository: PyPI or Anaconda.org": [[24, null]], "Publishing a package to PyPI / Conda-Forge": [[40, "publishing-a-package-to-pypi-conda-forge"]], "Pull request template checklist tips": [[41, null]], "Pure Python Packages vs. packages with extensions in other languages": [[21, "pure-python-packages-vs-packages-with-extensions-in-other-languages"]], "Putting it all together - your completed pyproject.toml file": [[43, "putting-it-all-together-your-completed-pyproject-toml-file"]], "Python Package Code Style, Format and Linters": [[20, null]], "Python Package Dependencies": [[22, "python-package-dependencies"]], "Python Package Structure": [[23, null]], "Python Package Structure for Scientific Python Projects": [[28, null]], "Python Packaging Tools": [[26, null]], "Python Packaging for Scientists": [[19, "python-packaging-for-scientists"]], "Python Semantic Release Cons": [[29, "python-semantic-release-cons"]], "Python Semantic Release Pros": [[29, "python-semantic-release-pros"]], "Python modules and the __init__.py file": [[39, null]], "Python package API documentation": [[16, "python-package-api-documentation"]], "Python package build front-ends": [[26, "python-package-build-front-ends"]], "Python packages and environments": [[40, "python-packages-and-environments"]], "Python packages are installable": [[40, "python-packages-are-installable"]], "Python packaging 101": [[40, null]], "Python packaging tools summary": [[26, "python-packaging-tools-summary"]], "README File Guidelines and Resources": [[14, null]], "README Resources": [[14, null]], "Read the Docs and Python packages": [[22, null]], "Read the Docs vs GitHub Pages": [[4, "read-the-docs-vs-github-pages"]], "Recursive dependencies": [[25, null]], "References": [[13, "references"]], "Referencing code in documentation": [[0, "referencing-code-in-documentation"]], "Release Sections": [[8, "release-sections"]], "Required (or core) dependencies": [[22, "required-or-core-dependencies"]], "Required fields for the [project] table": [[25, "required-fields-for-the-project-table"]], "Ruff": [[20, "ruff"]], "Run Python package tests": [[31, null]], "Run tests across Python versions with nox": [[31, "run-tests-across-python-versions-with-nox"]], "Run tests using pytest": [[31, "run-tests-using-pytest"]], "Run tests with Continuous Integration": [[33, null]], "Sample Directory Tree": [[44, "sample-directory-tree"]], "SemVer rules": [[29, "semver-rules"]], "Semantic release, vs version control based vs manual version bumping": [[29, "semantic-release-vs-version-control-based-vs-manual-version-bumping"]], "Setting up Your Local Environment": [[1, "setting-up-your-local-environment"]], "Setting up a git pre-commit hook": [[20, "setting-up-a-git-pre-commit-hook"]], "Setup 2-factor (2FA) authentication": [[42, null]], "Setup.py is still useful for complex package builds": [[25, null]], "Setuptools Features": [[26, "setuptools-features"]], "Sphinx - a static site generator": [[5, "sphinx-a-static-site-generator"]], "Sphinx Gallery benefits": [[15, "sphinx-gallery-benefits"]], "Sphinx gallery challenges": [[15, "sphinx-gallery-challenges"]], "Sphinx sites can be customized using extensions and themes": [[5, "sphinx-sites-can-be-customized-using-extensions-and-themes"]], "Starting a New Language Translation": [[1, "starting-a-new-language-translation"]], "Step 0: Create a README file": [[36, "step-0-create-a-readme-file"]], "Step 1: Add Author, maintainer and project description": [[43, "step-1-add-author-maintainer-and-project-description"]], "Step 1: Add the name of your package as the README title": [[36, "step-1-add-the-name-of-your-package-as-the-readme-title"]], "Step 1: Create a Python package development environment": [[42, "step-1-create-a-python-package-development-environment"]], "Step 1: Install grayskull": [[41, "step-1-install-grayskull"]], "Step 1: Open and Edit Your config.toml File": [[38, "step-1-open-and-edit-your-config-toml-file"]], "Step 1: Set Up the Package Directory Structure": [[39, "step-1-set-up-the-package-directory-structure"]], "Step 2 - update your email and name": [[38, "step-2-update-your-email-and-name"]], "Step 2: Add README and license": [[43, "step-2-add-readme-and-license"]], "Step 2: Add module to your package": [[39, "step-2-add-module-to-your-package"]], "Step 2: Build your package\u2019s sdist and wheel distributions": [[42, "step-2-build-your-package-s-sdist-and-wheel-distributions"]], "Step 2: Fork and clone the conda-forge staged-recipes repository": [[41, "step-2-fork-and-clone-the-conda-forge-staged-recipes-repository"]], "Step 2: add badges to the top of your README file": [[36, "step-2-add-badges-to-the-top-of-your-readme-file"]], "Step 3": [[38, "step-3"]], "Step 3. Setup your TestPyPI account": [[42, "step-3-setup-your-testpypi-account"]], "Step 3: Add a description of what your package does": [[36, "step-3-add-a-description-of-what-your-package-does"]], "Step 3: Add code to your module": [[39, "step-3-add-code-to-your-module"]], "Step 3: Create your conda-forge recipe": [[41, "step-3-create-your-conda-forge-recipe"]], "Step 3: Specify Python version with requires-python": [[43, "step-3-specify-python-version-with-requires-python"]], "Step 3b: Bug fix - add a home url to the about: section": [[41, "step-3b-bug-fix-add-a-home-url-to-the-about-section"]], "Step 4. Create a package upload token": [[42, "step-4-create-a-package-upload-token"]], "Step 4: Add package installation instructions": [[36, "step-4-add-package-installation-instructions"]], "Step 4: Close the config file and run hatch config show": [[38, "step-4-close-the-config-file-and-run-hatch-config-show"]], "Step 4: Modify metadata in your pyproject.toml file": [[39, "step-4-modify-metadata-in-your-pyproject-toml-file"]], "Step 4: Specify Dependencies": [[43, "step-4-specify-dependencies"]], "Step 4: Submit a pull request to the staged-recipes repository": [[41, "step-4-submit-a-pull-request-to-the-staged-recipes-repository"]], "Step 4: tests for conda-forge": [[41, "step-4-tests-for-conda-forge"]], "Step 5: Add PyPI classifiers": [[43, "step-5-add-pypi-classifiers"]], "Step 5: Any additional setup": [[36, "step-5-any-additional-setup"]], "Step 5: Install your package locally": [[39, "step-5-install-your-package-locally"]], "Step 6: Add a get started section": [[36, "step-6-add-a-get-started-section"]], "Step 6: Add the [project.urls] table": [[43, "step-6-add-the-project-urls-table"]], "Step 6: Test out your new package": [[39, "step-6-test-out-your-new-package"]], "Step 7: Community section": [[36, "step-7-community-section"]], "Step 8: Citation information": [[36, "step-8-citation-information"]], "Step-by-Step Guide": [[44, "step-by-step-guide"]], "Submitting a PR for Your Contribution": [[1, "submitting-a-pr-for-your-contribution"]], "Submitting a pull request with your contribution": [[0, "submitting-a-pull-request-with-your-contribution"]], "Suggestions in this guide are not pyOpenSci review requirements": [[23, null]], "Summary": [[20, "summary"]], "Summary of tools Hatch vs. PDM vs. Poetry (and setuptools)": [[26, "summary-of-tools-hatch-vs-pdm-vs-poetry-and-setuptools"]], "Support conda users with environment.yml files": [[22, "support-conda-users-with-environment-yml-files"]], "Support for contributors and maintainers": [[40, null]], "TL;DR": [[0, "tl-dr"]], "Table: Testing & Automation Tool": [[31, "id3"]], "Take Aways": [[20, null], [24, null]], "Take-aways: If you can, publish on both PyPI and conda-forge to accommodate more users of your package": [[24, "take-aways-if-you-can-publish-on-both-pypi-and-conda-forge-to-accommodate-more-users-of-your-package"]], "Test Environments": [[31, "test-environments"]], "Test Types for Python packages": [[32, null]], "Test examples": [[34, null]], "TestPyPI vs PyPI": [[42, "testpypi-vs-pypi"]], "TestPyPI vs. PyPI": [[42, null]], "Tests": [[19, "tests"]], "Tests across operating systems": [[31, null]], "Tests and data for your Python package": [[30, null]], "Tests for user edge cases": [[34, "tests-for-user-edge-cases"]], "The CODE_OF_CONDUCT file - Python Packaging": [[9, null]], "The Release Process": [[1, "the-release-process"]], "The Review Process": [[1, "the-review-process"]], "The bare minimum needed in a pyproject.toml file": [[39, null]], "The elements of a Python package": [[40, "the-elements-of-a-python-package"]], "The finished README file": [[36, "the-finished-readme-file"]], "The src/ layout and testing": [[28, "the-src-layout-and-testing"]], "The value of end-to-end tools like hatch, flit and poetry": [[42, null]], "Three Python docstring formats and why we like NumPy style": [[16, "three-python-docstring-formats-and-why-we-like-numpy-style"]], "Three types of tests: Unit, Integration & Functional Tests": [[32, "three-types-of-tests-unit-integration-functional-tests"]], "Time to create your Python package!": [[39, "time-to-create-your-python-package"]], "Time to install your package": [[42, "time-to-install-your-package"]], "Todo": [[7, "id1"], [19, "id1"], [22, null], [22, "id4"], [25, "id1"], [31, "id1"], [31, "id2"], [32, "id1"], [33, "id1"], [38, "id1"], [39, "id1"], [39, "id7"], [39, "id8"], [40, "id1"], [42, "id1"], [42, "id3"], [42, "id4"], [43, "id2"]], "Too Much Of A Good Thing": [[14, null]], "Tool 1: Hatch and other build tools that offer incremental versioning": [[29, "tool-1-hatch-and-other-build-tools-that-offer-incremental-versioning"]], "Tool 2: Hatch_vcs & hatchling build back-end": [[29, "tool-2-hatch-vcs-hatchling-build-back-end"]], "Tool 3: setuptools-scm versioning using git tags": [[29, "tool-3-setuptools-scm-versioning-using-git-tags"]], "Tool 4: Python semantic release": [[29, "tool-4-python-semantic-release"]], "Tools for building your package": [[26, "tools-for-building-your-package"]], "Tools for bumping Python package versions": [[29, "tools-for-bumping-python-package-versions"]], "Tools that we review here": [[26, "tools-that-we-review-here"]], "Tools to Build and Host your Documentation": [[2, null]], "Tools to automate running your tests": [[31, "tools-to-automate-running-your-tests"]], "Tools to manage versions for your Python package": [[29, "tools-to-manage-versions-for-your-python-package"]], "Tools to run your tests": [[31, "tools-to-run-your-tests"]], "Translation Guide for the Python Packaging Guide": [[1, null]], "Two approaches to contributing": [[0, "two-approaches-to-contributing"]], "Two types of Python package users": [[7, "two-types-of-python-package-users"]], "Understanding optional vs. required dependencies": [[22, "understanding-optional-vs-required-dependencies"]], "Unit Tests": [[32, "unit-tests"]], "Unreleased Section": [[8, "unreleased-section"]], "Upload to TestPyPI using Hatch": [[42, "upload-to-testpypi-using-hatch"]], "Use a code format tool (or tools) to make your life easier": [[20, "use-a-code-format-tool-or-tools-to-make-your-life-easier"]], "Use a pyproject.toml file for your package configuration & metadata": [[25, null]], "Use open permissive licenses when possible": [[13, "use-open-permissive-licenses-when-possible"]], "Use pre-commit hooks to run code formatters and linters on commits": [[20, "use-pre-commit-hooks-to-run-code-formatters-and-linters-on-commits"]], "Using Hatch to Migrate setup.py to a pyproject.toml": [[44, null]], "Using Setuptools Back-end for Python Packaging with Build Front-end": [[26, "using-setuptools-back-end-for-python-packaging-with-build-front-end"]], "Using Sphinx to Build Python Package Documentation": [[5, null]], "Using doctest to run docstring examples in your package\u2019s methods and functions": [[16, "using-doctest-to-run-docstring-examples-in-your-package-s-methods-and-functions"]], "Using python -m pip install vs. pip install": [[22, null]], "Version control and storing your package on GitHub or GitLab": [[40, "version-control-and-storing-your-package-on-github-or-gitlab"]], "Versioning your Python package and semantic versioning": [[8, null]], "Versions and Environments": [[37, "versions-and-environments"]], "We do not suggest using setuptools": [[26, null]], "What a CONTRIBUTING.md file should contain": [[10, "what-a-contributing-md-file-should-contain"]], "What about software citation?": [[13, "what-about-software-citation"]], "What does it include?": [[8, "what-does-it-include"]], "What does it look like?": [[8, "what-does-it-look-like"]], "What does python -m pip install -e . do?": [[39, null]], "What does the flat layout structure look like?": [[28, "what-does-the-flat-layout-structure-look-like"]], "What happened to setup.py & how do i migrate to pyproject.toml?": [[25, null]], "What happened to setup.py and setup.cfg for metadata?": [[27, null]], "What happens when a string has changed in the original English text?": [[1, "what-happens-when-a-string-has-changed-in-the-original-english-text"]], "What happens when you submit a pull request (CI/CD)": [[0, "what-happens-when-you-submit-a-pull-request-ci-cd"]], "What happens when you use incorrect classifiers?": [[43, null]], "What is CHANGELOG.md?": [[8, "what-is-changelog-md"]], "What is GitHub Pages?": [[4, "what-is-github-pages"]], "What is Hatch?": [[44, "what-is-hatch"]], "What is PyPI": [[24, "what-is-pypi"]], "What is Read the Docs ?": [[4, "what-is-read-the-docs"]], "What is a Open Source License file?": [[13, "what-is-a-open-source-license-file"]], "What is a Python package?": [[40, "what-is-a-python-package"]], "What is a Python wheel (whl):": [[27, "what-is-a-python-wheel-whl"]], "What is a README file?": [[36, "what-is-a-readme-file"]], "What is a code of conduct file?": [[35, "what-is-a-code-of-conduct-file"]], "What is a docstring and how does it relate to documentation?": [[16, "what-is-a-docstring-and-how-does-it-relate-to-documentation"]], "What is a license?": [[35, "what-is-a-license"]], "What is a package dependency?": [[22, "what-is-a-package-dependency"]], "What is a pyproject.toml file?": [[39, "what-is-a-pyproject-toml-file"], [43, "what-is-a-pyproject-toml-file"]], "What is a source distribution (sdist)": [[27, "what-is-a-source-distribution-sdist"]], "What is an API?": [[16, "what-is-an-api"]], "What is an __init__.py file?": [[39, "what-is-an-init-py-file"]], "What is building a Python package?": [[27, "what-is-building-a-python-package"]], "What is conda and Anaconda.org?": [[24, "what-is-conda-and-anaconda-org"]], "What is conda-forge?": [[41, "what-is-conda-forge"]], "What is the Python package source layout?": [[28, "what-is-the-python-package-source-layout"]], "What is the flat Python package layout?": [[28, "what-is-the-flat-python-package-layout"]], "What is the pyproject.toml used for?": [[43, "what-is-the-pyproject-toml-used-for"]], "What license should you use?": [[35, "what-license-should-you-use"]], "What pyOpenSci looks for in a package": [[40, null]], "What testing framework / package should I use to run tests?": [[31, "what-testing-framework-package-should-i-use-to-run-tests"]], "What the development guide for your Python package should contain": [[11, null]], "What to consider before you create a package": [[40, "what-to-consider-before-you-create-a-package"]], "What to expect from the review process": [[0, "what-to-expect-from-the-review-process"]], "What to put in your CODE_OF_CONDUCT file": [[35, "what-to-put-in-your-code-of-conduct-file"]], "What we previously covered": [[39, null]], "What you will learn here": [[23, "what-you-will-learn-here"]], "What your README.md file should contain": [[14, "what-your-readme-md-file-should-contain"]], "What\u2019s next": [[38, "what-s-next"]], "What\u2019s next in this Python package documentation section?": [[7, "what-s-next-in-this-python-package-documentation-section"]], "What\u2019s next?": [[40, "what-s-next"]], "When should you turn your code into a Python package?": [[40, "when-should-you-turn-your-code-into-a-python-package"]], "Where does conda fit in?": [[22, null]], "Where should the LICENSE file live": [[35, "where-should-the-license-file-live"]], "Where this guide is headed": [[19, "where-this-guide-is-headed"]], "Where to store your license": [[13, "where-to-store-your-license"]], "Who are these tutorials for?": [[40, "who-are-these-tutorials-for"]], "Who this guidebook is for": [[19, "who-this-guidebook-is-for"]], "Why a development guide is important": [[11, "why-a-development-guide-is-important"]], "Why create a Python package?": [[40, "why-create-a-python-package"]], "Why create package-specific tokens?": [[42, null]], "Why is it important?": [[8, "why-is-it-important"]], "Why licenses are important": [[13, "why-licenses-are-important"]], "Why most scientific Python packages do not use source": [[28, null]], "Why publish to conda-forge": [[41, "why-publish-to-conda-forge"]], "Why the pyproject.toml file is important": [[39, null]], "Why use type hints": [[16, "why-use-type-hints"]], "Why write tests for your package?": [[34, "why-write-tests-for-your-package"]], "Why you might not want to use Flit": [[26, "why-you-might-not-want-to-use-flit"]], "Why you might not want to use Hatch": [[26, "why-you-might-not-want-to-use-hatch"]], "Why you need a CODE_OF_CONDUCT": [[9, "why-you-need-a-code-of-conduct"]], "Working on a Translation": [[1, "working-on-a-translation"]], "Write tests for your Python package": [[34, null]], "Write usable documentation": [[17, "write-usable-documentation"]], "Writing user-facing documentation for your Python package": [[18, null]], "Yay, your package has users! Now what?": [[40, "yay-your-package-has-users-now-what"]], "You have published your package to TestPyPI!": [[42, "you-have-published-your-package-to-testpypi"]], "conda channels": [[24, "conda-channels"]], "conda channels, PyPI, conda, pip - Where to publish your package": [[24, "conda-channels-pypi-conda-pip-where-to-publish-your-package"]], "conda-forge staged recipes and CI failures": [[41, null]], "hatch_vcs Cons": [[29, "hatch-vcs-cons"]], "hatch_vcs Pros": [[29, "hatch-vcs-pros"]], "nbsphinx - tutorials using Jupyter Notebooks": [[15, "nbsphinx-tutorials-using-jupyter-notebooks"]], "new Tutorial Series: Create a Python Package": [[19, "new-tutorial-series-create-a-python-package"]], "pyOpenSci Python Package Guide": [[19, null]], "pyOpenSci will never require a specific package structure for peer review": [[28, null]], "setuptools_scm Cons": [[29, "setuptools-scm-cons"]], "sphinx gallery:": [[15, "sphinx-gallery"]], "sphinx-sitemap for search engine optimization": [[6, "sphinx-sitemap-for-search-engine-optimization"]], "sphinxext.opengraph": [[6, "sphinxext-opengraph"]], "\u2714\ufe0f A Community Section with Links to Contributing Guide, Code of Conduct": [[14, "a-community-section-with-links-to-contributing-guide-code-of-conduct"]], "\u2714\ufe0f A short, easy-to-understand description of what your package does": [[14, "a-short-easy-to-understand-description-of-what-your-package-does"]], "\u2714\ufe0f Badges for current package version, continuous integration and test coverage": [[14, "badges-for-current-package-version-continuous-integration-and-test-coverage"]], "\u2714\ufe0f Brief demonstration of how to use the package": [[14, "brief-demonstration-of-how-to-use-the-package"]], "\u2714\ufe0f Citation information": [[14, "citation-information"]], "\u2714\ufe0f Descriptive links to package documentation, short tutorials": [[14, "descriptive-links-to-package-documentation-short-tutorials"]], "\u2714\ufe0f Document any additional setup required": [[14, "document-any-additional-setup-required"]], "\u2714\ufe0f Installation instructions": [[14, "installation-instructions"]], "\u2714\ufe0f Your package\u2019s name": [[14, "your-package-s-name"]]}, "docnames": ["CONTRIBUTING", "TRANSLATING", "documentation/hosting-tools/intro", "documentation/hosting-tools/myst-markdown-rst-doc-syntax", "documentation/hosting-tools/publish-documentation-online", "documentation/hosting-tools/sphinx-python-package-documentation-tools", "documentation/hosting-tools/website-hosting-optimizing-your-docs", "documentation/index", "documentation/repository-files/changelog-file", "documentation/repository-files/code-of-conduct-file", "documentation/repository-files/contributing-file", "documentation/repository-files/development-guide", "documentation/repository-files/intro", "documentation/repository-files/license-files", "documentation/repository-files/readme-file-best-practices", "documentation/write-user-documentation/create-package-tutorials", "documentation/write-user-documentation/document-your-code-api-docstrings", "documentation/write-user-documentation/get-started", "documentation/write-user-documentation/intro", "index", "package-structure-code/code-style-linting-format", "package-structure-code/complex-python-package-builds", "package-structure-code/declare-dependencies", "package-structure-code/intro", "package-structure-code/publish-python-package-pypi-conda", "package-structure-code/pyproject-toml-python-package-metadata", "package-structure-code/python-package-build-tools", "package-structure-code/python-package-distribution-files-sdist-wheel", "package-structure-code/python-package-structure", "package-structure-code/python-package-versions", "tests/index", "tests/run-tests", "tests/test-types", "tests/tests-ci", "tests/write-tests", "tutorials/add-license-coc", "tutorials/add-readme", "tutorials/command-line-reference", "tutorials/get-to-know-hatch", "tutorials/installable-code", "tutorials/intro", "tutorials/publish-conda-forge", "tutorials/publish-pypi", "tutorials/pyproject-toml", "tutorials/setup-py-to-pyproject-toml"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinxcontrib.bibtex": 9}, "filenames": ["CONTRIBUTING.md", "TRANSLATING.md", "documentation/hosting-tools/intro.md", "documentation/hosting-tools/myst-markdown-rst-doc-syntax.md", "documentation/hosting-tools/publish-documentation-online.md", "documentation/hosting-tools/sphinx-python-package-documentation-tools.md", "documentation/hosting-tools/website-hosting-optimizing-your-docs.md", "documentation/index.md", "documentation/repository-files/changelog-file.md", "documentation/repository-files/code-of-conduct-file.md", "documentation/repository-files/contributing-file.md", "documentation/repository-files/development-guide.md", "documentation/repository-files/intro.md", "documentation/repository-files/license-files.md", "documentation/repository-files/readme-file-best-practices.md", "documentation/write-user-documentation/create-package-tutorials.md", "documentation/write-user-documentation/document-your-code-api-docstrings.md", "documentation/write-user-documentation/get-started.md", "documentation/write-user-documentation/intro.md", "index.md", "package-structure-code/code-style-linting-format.md", "package-structure-code/complex-python-package-builds.md", "package-structure-code/declare-dependencies.md", "package-structure-code/intro.md", "package-structure-code/publish-python-package-pypi-conda.md", "package-structure-code/pyproject-toml-python-package-metadata.md", "package-structure-code/python-package-build-tools.md", "package-structure-code/python-package-distribution-files-sdist-wheel.md", "package-structure-code/python-package-structure.md", "package-structure-code/python-package-versions.md", "tests/index.md", "tests/run-tests.md", "tests/test-types.md", "tests/tests-ci.md", "tests/write-tests.md", "tutorials/add-license-coc.md", "tutorials/add-readme.md", "tutorials/command-line-reference.md", "tutorials/get-to-know-hatch.md", "tutorials/installable-code.md", "tutorials/intro.md", "tutorials/publish-conda-forge.md", "tutorials/publish-pypi.md", "tutorials/pyproject-toml.md", "tutorials/setup-py-to-pyproject-toml.md"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [1, 3, 4, 5, 8, 9, 10, 11, 13, 15, 17, 18, 20, 21, 22, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 39, 41, 43, 44], "0": [1, 8, 20, 22, 26, 27, 29, 31, 32, 34, 39, 41, 42, 43], "00": 41, "000": 26, "001": 34, "01": [13, 32], "01e31f5521973710d0d91b15a94491d4f8f8f54566322110098c0f2381dd09ab": 41, "02": 13, "03": 13, "07": 8, "08": [8, 43], "09": 13, "1": [0, 1, 8, 13, 14, 15, 16, 20, 22, 23, 25, 26, 27, 31, 34, 35], "10": [20, 27, 31, 33, 36, 39, 43], "100": [32, 41], "105": 16, "106": 22, "11": [20, 27, 28, 31, 33, 39, 43], "115": 36, "12": [20, 31, 39], "155": 1, "1580827": 16, "16": 42, "1766663571": 22, "18": 41, "1844278487": 22, "19": 8, "2": [0, 1, 13, 14, 15, 16, 22, 23, 25, 26, 27, 34, 35], "20": 20, "2009": 26, "2015": 13, "2016": 13, "2017": 25, "2019": 13, "2020": 29, "2021": [8, 39], "2022": [7, 12, 13, 14], "2023": [13, 42, 43], "2024": [13, 42], "212": 32, "22": 20, "23": [7, 12, 14, 39, 42], "24": [8, 39], "254": 1, "26": 42, "29": 20, "2i2c": 42, "3": [0, 1, 7, 13, 14, 16, 20, 22, 23, 25, 26, 27, 28, 31, 33, 34, 35], "32": 32, "34": 20, "38": 1, "39": 20, "3vljpqb55psbgb1ghc2qsn700000gn": 41, "4": [13, 14, 16, 17, 20, 23, 27, 31, 34], "40": [16, 32], "43": 42, "430": 1, "43ec82da3a10752a5dbf2f0ef742e357803a3ddb400005f87e86534685bfb8a7": 41, "44": 1, "440": 29, "442": 20, "443": 20, "493": 20, "4935937": 16, "496": 20, "5": [1, 20, 23, 32, 34, 40], "5281": 36, "6": [7, 16, 20, 23], "61": 25, "7": [7, 39, 43], "75": 1, "79": 20, "8": [7, 20, 26, 29, 39, 41, 42], "80": 20, "8000": 1, "82": 20, "8365068": 36, "84": 1, "88": [1, 20], "885": 1, "9": [26, 29, 31, 32, 33, 38, 39], "90": 20, "95": 20, "950": 1, "97": 41, "999": 34, "A": [1, 5, 7, 8, 10, 11, 13, 15, 16, 17, 20, 21, 23, 25, 26, 27, 31, 32, 34, 35, 36, 38, 39, 40, 41, 43], "And": [0, 6, 15, 16, 20, 22, 23, 24, 26, 27, 41, 42, 43], "As": [0, 7, 16, 20, 21, 25, 26, 27, 28, 29, 34, 36, 38, 39, 40, 42, 43, 44], "At": [8, 14, 34, 36, 39, 40, 41, 42, 43], "BE": 43, "BY": 13, "Be": [28, 35, 36, 40, 41, 42], "Being": 29, "But": [1, 7, 22, 26, 27, 29, 32, 40, 42], "By": [8, 15, 16, 20, 26, 28, 31, 34, 35, 40, 42], "For": [1, 3, 15, 16, 19, 20, 21, 25, 26, 27, 28, 29, 31, 32, 34, 36, 39, 40, 41, 42, 43], "If": [0, 1, 3, 4, 6, 7, 9, 11, 13, 14, 15, 16, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 39, 40, 41, 43, 44], "In": [0, 1, 2, 7, 9, 12, 13, 14, 16, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 39, 40, 41, 42, 43, 44], "It": [0, 2, 3, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 35, 36, 38, 39, 40, 41, 42, 43, 44], "Its": 26, "NOT": [20, 26, 28], "No": [23, 26], "Not": [22, 29], "OR": 42, "On": [0, 5, 15, 22, 24, 27, 31, 42], "One": [13, 25, 29, 39, 43], "Or": [0, 7, 17, 22, 24, 31, 36, 40], "TO": 22, "That": [32, 35, 41, 43], "The": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 22, 23, 24, 25, 26, 27, 29, 31, 32, 33, 35, 37, 41, 43, 44], "Then": [25, 36, 38, 40, 42, 43], "There": [0, 1, 3, 14, 15, 16, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 40, 41, 42, 43], "These": [0, 1, 7, 9, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 35, 37, 39, 40, 42, 43], "To": [0, 1, 13, 15, 16, 17, 19, 20, 22, 23, 24, 25, 26, 27, 29, 31, 33, 35, 36, 38, 39, 40, 41, 42, 43], "Will": 31, "With": [29, 31, 40], "_": 39, "__about__": 39, "__init__": [27, 28, 44], "__pypackages__": 26, "__token__": 42, "_build": [0, 1, 15], "_compat": 13, "_gplv3": 13, "_version": [27, 29], "_version_gener": 27, "ab": 32, "abil": 23, "abl": [1, 7, 25, 27, 29, 31, 33, 34, 40], "about": [0, 1, 2, 3, 7, 8, 10, 15, 16, 17, 18, 20, 21, 22, 23, 24, 28, 30, 31, 32, 33, 35, 36, 40, 44], "abov": [3, 11, 12, 14, 16, 17, 20, 22, 25, 26, 27, 28, 29, 31, 32, 35, 36, 38, 39, 40, 41, 42, 43], "absolut": 43, "abunchofrandomcharactersher": 42, "acc": 8, "acceler": 8, "accept": [8, 14, 23, 36, 39, 40, 41, 43], "access": [1, 8, 14, 17, 24, 27, 28, 29, 31, 36, 39, 40, 42], "accident": [34, 42], "accommod": 35, "accompani": 28, "accord": 26, "account": [1, 4, 37], "accur": [1, 19, 44], "acknowledg": [8, 41], "across": [0, 8, 16, 20, 23, 24, 26, 27, 28, 30, 32, 33, 38, 40, 41], "act": [15, 23, 34], "action": [0, 1, 20, 29, 30, 31, 32, 34, 41, 42], "activ": [0, 1, 19, 20, 22, 26, 28, 29, 31, 37, 39, 40, 41, 42, 43], "actual": 1, "ad": [0, 1, 8, 14, 15, 17, 18, 19, 20, 24, 25, 26, 28, 34, 35, 36, 37, 39, 43], "adapt": [1, 13, 27, 34], "add": [0, 1, 3, 5, 6, 8, 13, 14, 15, 16, 19, 20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 33, 34, 37, 40, 42], "add_convers": 29, "add_m": 16, "add_num": [36, 39], "add_numb": [16, 34, 36, 39], "addit": [1, 8, 15, 16, 17, 20, 21, 23, 25, 26, 27, 29, 31, 39, 41, 43, 44], "address": [26, 34, 40, 42], "adher": [8, 20, 26, 43], "adjust": [20, 28], "admin": 43, "admonit": 39, "adopt": [1, 8, 9, 13, 23, 26, 29, 35], "advanc": [14, 22, 26, 41, 43], "advantag": [28, 32], "affect": 34, "after": [0, 1, 8, 20, 29, 36, 37, 38, 39, 40, 41, 42, 43], "again": [42, 43], "against": 28, "ago": 24, "agre": 35, "ahead": 0, "aid": 31, "aim": [20, 40, 41], "align": [23, 25, 26, 42], "alik": [8, 13], "all": [0, 1, 7, 8, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42], "allow": [0, 3, 4, 6, 11, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31, 33, 35, 36, 38, 39, 40, 41, 42, 43], "almost": 0, "alon": [16, 23], "along": [16, 21, 39], "alongsid": [1, 22], "alpha": 43, "alreadi": [0, 1, 3, 21, 26, 27, 28, 31, 35, 36, 38, 39, 41, 42, 44], "also": [0, 1, 2, 4, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 38, 39, 41, 42, 43], "alter": 34, "altern": [0, 21, 22, 36, 42], "alwai": [7, 8, 20, 25, 28, 29, 36, 39, 43], "among": 12, "amount": 20, "amplia": 1, "an": [0, 1, 3, 6, 7, 8, 11, 12, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 36, 38, 41, 42, 43], "anaconda": [14, 28, 41], "analys": 40, "analyz": 31, "ani": [0, 1, 3, 8, 10, 11, 13, 17, 20, 22, 24, 26, 27, 29, 31, 35, 38, 39, 40, 41, 42, 43, 44], "anim": 40, "annot": 40, "anoth": [0, 1, 4, 8, 12, 14, 15, 16, 21, 22, 24, 26, 32, 38, 40, 41], "another_tutori": 15, "answer": [24, 40], "anticip": 24, "anum": 16, "anum2": 16, "anyon": [19, 23, 24, 27, 41, 42, 43], "anyth": 22, "anywher": [29, 42], "apach": [13, 43], "api": [5, 15, 17, 18, 25, 29, 37, 42, 43], "apitoken": 42, "app": 26, "appear": [14, 25], "append": 0, "appendix": 43, "appli": [5, 14, 16, 20, 29, 41], "applic": [7, 14, 22, 32, 36, 38, 40, 42, 43], "appreci": [8, 26], "approach": [1, 11, 19, 22, 23, 26, 28, 29, 31, 38, 43], "appropri": [1, 14], "approv": [0, 13, 24, 25, 27, 40, 41, 43], "approx": 32, "apt": 38, "ar": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43], "architectur": [27, 41], "area": 0, "aren": [20, 28, 39, 41], "argument": [1, 16, 26], "around": [1, 6, 9, 14, 19, 20, 23, 24, 29, 40, 43], "arrai": [16, 22, 25, 27, 34, 43], "arrow": 39, "art": [14, 30], "asegurar": 1, "ask": [0, 10, 14, 17, 26, 35, 40, 42], "assert": [32, 34], "assign": [1, 29, 43], "associ": [8, 14, 22, 25, 26, 29, 36, 39, 40, 41, 42, 43], "assum": [22, 29, 31, 40], "assur": [14, 16], "athlet": 29, "attempt": 41, "attent": 14, "attribut": [8, 13, 15, 16, 17, 18, 27, 29, 32, 34], "attribute_warn": 29, "at\u00edpico": 1, "audienc": [17, 25, 27, 36, 39, 40, 43], "august": 25, "auth_respond": 27, "authent": [14, 36], "author": [20, 22, 23, 25, 27, 39], "auto": [20, 26], "autobuild": 1, "autodoc": [5, 16, 18], "autoformat": 20, "autom": [1, 4, 20, 22, 29, 30, 37, 39, 40, 41, 42], "automag": [18, 20, 29, 35], "automat": [0, 1, 5, 13, 16, 20, 22, 27, 29, 31, 34, 39, 40, 42, 44], "autoupdate_schedul": 20, "avail": [0, 1, 12, 13, 14, 19, 20, 22, 23, 24, 26, 29, 38, 40, 41], "averag": 32, "avoid": [1, 8, 13, 14, 20, 22, 24, 36], "awai": 6, "awar": [8, 13, 26, 43], "awkward": 28, "b": [0, 34, 39, 41], "back": [25, 27, 36, 38, 39, 40, 42, 43], "backbon": 8, "backend": [25, 26, 27, 29, 31, 39, 40, 43], "background": [7, 14], "backup": 42, "backward": [26, 29], "bane": 14, "bare": [23, 43], "barrier": 16, "base": [5, 6, 7, 8, 11, 15, 16, 20, 23, 25, 26, 31, 32, 33, 34, 39, 40, 41, 43, 44], "baselin": [37, 40], "bash": [22, 33, 39, 41], "basic": [22, 26, 35, 40, 41], "beauti": [5, 22], "becaus": [1, 3, 8, 13, 16, 20, 21, 22, 24, 25, 26, 27, 29, 30, 31, 34, 35, 38, 39, 40, 41, 42, 43], "becom": [1, 20, 29, 34, 40, 42, 44], "been": [1, 8, 14, 20, 23, 25, 26, 27, 28, 29, 34, 36, 37, 39, 41], "befor": [1, 14, 16, 20, 23, 28, 32, 34, 36, 38, 41, 42, 43], "begin": [1, 14, 15, 19, 20, 23, 26, 32, 36, 38, 39, 40, 41, 44], "beginn": [0, 1, 19, 26, 28, 38, 40], "behav": [32, 34], "behavior": [9, 26, 32, 34, 35], "behind": [8, 20, 42], "being": [0, 16, 22, 23, 26, 36, 39, 41, 43], "belong": [20, 27, 42], "below": [1, 4, 7, 8, 12, 13, 14, 15, 16, 17, 20, 21, 22, 24, 25, 26, 27, 28, 29, 31, 33, 34, 36, 38, 39, 40, 41, 43], "benefit": [0, 20, 26, 39], "besid": 40, "best": [0, 7, 18, 19, 20, 23, 24, 25, 26, 28, 40], "beta": [27, 39, 43], "better": [14, 19, 25, 26, 29, 40, 43], "between": [13, 24, 26, 40, 43], "bewar": [14, 26], "beyond": [0, 20, 40], "biggest": 24, "bin": [0, 1, 42], "binari": 27, "bind": [13, 21], "bioacoust": 40, "bioconda": [24, 41], "biomed": 24, "bit": [4, 32, 38, 39, 41], "black": [22, 23, 25, 40, 43], "block": [0, 3, 20], "blog": [13, 25, 35, 40], "blogpost": 41, "blue": 23, "boil": 32, "bokeh": 28, "bold": 1, "bone": 43, "book": [0, 5, 6], "bool": 0, "borrow": 13, "bot": [20, 29, 41], "both": [1, 3, 7, 8, 12, 13, 14, 15, 16, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43], "bottom": [0, 14, 15, 25, 39, 41], "bound": [16, 26, 43], "boundari": [34, 43], "box": 42, "bracket": [22, 39, 43], "brain": 20, "branch": [1, 4, 33, 35, 39, 41], "branch_or_tag": [37, 39], "break": [0, 8, 17, 26, 29, 32, 34, 39, 40, 41], "breakout": 26, "breakpoint": 31, "brief": 16, "briefli": [36, 43], "bring": 32, "broad": [7, 17, 22, 24, 35, 39, 40], "broader": [14, 17, 19, 26, 40], "broadli": [17, 20, 24, 40], "broke": 34, "broken": [32, 36], "brought": 0, "brows": [14, 43], "browser": [0, 1, 38, 42], "bsd": [0, 13, 25, 35, 38, 41], "bsd3": 43, "bu": 26, "bucket": 37, "bug": [0, 7, 8, 9, 29, 34, 40, 43], "build": [4, 7, 8, 11, 14, 16, 19, 22, 23, 24, 28, 31, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44], "build_edit": 39, "build_exampl": 15, "build_meta": 25, "built": [0, 1, 6, 20, 24, 25, 26, 27, 29, 31, 32, 39, 41, 42, 43], "built_exampl": 15, "bump": [26, 37], "bump2vers": 29, "bunch": [16, 32, 42], "bundl": [24, 27, 41], "burden": [26, 28], "busi": 13, "button": [0, 34, 42], "c": [20, 21, 23, 24, 36, 37, 41], "c90": [20, 25], "cach": [38, 42], "cada": 1, "calc_annual_mean": 32, "calcul": [1, 16, 32, 34], "call": [0, 1, 3, 10, 16, 20, 21, 22, 24, 25, 27, 29, 31, 35, 39, 40, 41, 42], "calver": [23, 26, 29], "came": 26, "can": [0, 2, 3, 4, 6, 7, 8, 9, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44], "cancel": 20, "cannot": 42, "capabl": [21, 31], "captur": 42, "card": 17, "care": [0, 13, 20, 27], "carefulli": 43, "carpentri": [34, 39], "case": [0, 1, 7, 11, 13, 15, 16, 17, 20, 21, 22, 25, 26, 27, 28, 29, 32, 36, 38, 39, 40, 41, 42, 43], "caso": 1, "catalog": 1, "catch": [32, 34], "categori": [1, 8, 13, 21, 25, 27, 31, 43], "caus": [25, 27, 43], "caution": [13, 26], "cautiou": [43, 44], "caveat": 39, "cc": 13, "cd": [1, 39, 40, 41], "celsiu": 32, "celsius_to_fahrenheit": 32, "central": 8, "cerca": 1, "certain": [1, 32, 40, 44], "cfep": 41, "cff": 13, "cfg": [22, 25, 38, 39], "chagelog": 8, "challeng": [9, 31, 35, 43], "chanc": 24, "chang": [7, 8, 11, 19, 20, 21, 26, 28, 29, 33, 34, 40, 41, 43, 44], "changelog": [27, 28], "channel": [1, 23, 27, 41, 42, 43], "chapter": [28, 29], "charact": [1, 20, 39, 42], "characterist": 28, "cheatsheet": 43, "check": [0, 1, 7, 13, 15, 16, 23, 24, 26, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44], "checker": 43, "checklist": [14, 32], "checkout": [0, 23, 33, 41], "chief": 14, "choic": [1, 21, 26, 29, 31, 43], "choos": [0, 1, 16, 25, 35, 39, 43], "choosealicens": [13, 35, 38], "chose": [3, 6, 20, 21, 22, 38], "chosen": [21, 29, 35, 39], "ci": [1, 19, 29, 30, 31, 32, 34, 38, 40], "cient\u00edfico": 1, "circleci": 0, "circumst": 1, "cite": [7, 13, 14, 36], "clarif": 1, "clarifi": [7, 19], "class": [0, 5, 8, 15, 16, 17, 18, 32, 34, 40], "classifi": [0, 21, 25, 27], "claus": [13, 35, 41], "clean": [16, 20, 24, 26, 31, 39], "cleaner": 29, "cleanup": 22, "clear": [0, 8, 25, 26, 28, 34, 36, 39, 43], "clearli": [11, 14, 36], "cli": [43, 44], "click": [0, 1, 16, 24, 25, 26, 28, 38, 41, 42, 43], "client": 27, "clone": 1, "close": [6, 20, 29, 34, 35, 42], "closer": [1, 34], "cloud": [33, 40], "cloudflar": 6, "coc": 19, "code": [1, 5, 7, 9, 10, 11, 12, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 38, 41, 42, 43, 44], "code_of_conduct": [7, 27, 28, 36, 43], "codebas": [22, 40], "codecov": [31, 33], "codo": 20, "cofig": 20, "collabor": [19, 34, 42], "collect": [6, 14, 32, 40], "color": 3, "column": [8, 15], "com": [0, 8, 13, 20, 22, 32, 35, 36, 37, 38, 39, 41, 43], "combin": [3, 15], "come": [0, 8, 22, 26, 31, 36, 39, 42, 43], "comer": 20, "comfort": [0, 3, 9], "comma": [20, 43], "command": [0, 1, 16, 19, 20, 21, 22, 25, 26, 29, 31, 32, 38, 39, 40, 41, 42, 44], "command_descript": 37, "comment": [0, 1, 20, 22, 41, 43], "commerci": 13, "commit": [8, 22, 26, 29, 39], "common": [2, 5, 8, 13, 14, 22, 23, 26, 27, 31, 36, 39, 43], "commonli": [3, 4, 7, 8, 20, 26, 27, 28, 29, 31, 35, 41], "commun": [0, 1, 5, 6, 7, 8, 9, 12, 13, 17, 23, 26, 28, 35, 38, 39, 40, 41, 43], "compani": [12, 24, 41], "compar": [26, 34, 38, 43], "comparison": 26, "compat": [7, 13, 21, 26, 29, 43], "compatibli": 26, "compendia": 40, "compendium": 40, "compil": [1, 21, 26, 27, 28, 38], "complement": [20, 24, 32], "complementari": [14, 32], "complet": [0, 19, 24, 26, 32, 35, 37, 38, 39, 41, 42], "complex": [1, 14, 16, 20, 23, 24, 26, 27, 28, 33, 38, 41], "compli": 13, "complianc": 6, "compliant": 6, "complic": 14, "compon": [6, 8, 21, 32, 35, 40], "comprehens": [22, 32, 40], "comprens": 1, "compress": 27, "comput": [1, 13, 20, 22, 27, 31, 38, 39, 40, 41, 42], "comunidad": 1, "con": [1, 15], "concaten": 1, "concern": 40, "concis": [0, 8, 40], "conda": [19, 20, 23, 26, 27, 36, 37, 38, 39, 42], "conda_instal": 31, "conduct": [9, 10, 12, 19, 40, 41], "conf": [6, 15, 16], "confid": [31, 34, 42], "config": [20, 37], "configur": [1, 15, 20, 23, 26, 27, 28, 29, 39, 43, 44], "confirm": 41, "conflict": [20, 22, 41], "conftest": 27, "confus": [23, 26, 27], "conjunto": 1, "connect": [32, 41], "conocimiento": 1, "consent": 6, "consid": [1, 7, 9, 11, 13, 14, 16, 17, 18, 22, 23, 24, 25, 26, 29, 31, 32, 36, 43], "consider": 40, "consist": [0, 1, 8, 16, 20, 23, 24, 26, 27, 29, 34, 39, 40], "consol": 39, "constraint": [26, 34], "construct": 15, "consum": [13, 20, 28], "contain": [1, 13, 16, 22, 24, 25, 27, 28, 29, 31, 35, 39, 40, 42, 43], "content": [0, 1, 6, 7, 8, 14, 19, 27, 29, 35, 36, 37, 38, 39, 40, 44], "context": [1, 8, 14, 16], "continu": [0, 1, 4, 8, 11, 22, 24, 30, 31, 32, 34, 35, 41, 42, 43], "contrast": 16, "contribut": [3, 7, 8, 9, 11, 13, 16, 17, 20, 22, 25, 27, 28, 33, 34, 36, 40], "contributing_exampl": 0, "contributor": [0, 1, 8, 9, 11, 14, 15, 16, 19, 20, 22, 25, 26, 29, 30, 33, 34, 35, 36, 43], "control": [25, 26], "conveni": [31, 44], "convent": [8, 27, 29, 35, 39], "convers": [16, 29, 35], "convert": [16, 27, 32, 38], "coordin": [1, 16, 20], "copi": [0, 13, 35, 36, 39, 41, 42], "copyright": 39, "core": [3, 6, 16, 19, 20, 21, 23, 24, 25, 26, 27, 32, 35, 36, 39, 40, 43], "corner": [0, 16], "corpor": 43, "correct": [0, 16, 21, 25, 26, 27, 32, 34, 35, 38, 39, 40, 43, 44], "correctli": [0, 1, 20, 24, 26, 32, 34, 42], "correspond": [1, 37], "cost": 28, "could": [0, 1, 7, 20, 26, 27, 29, 31, 32, 34, 36, 40, 41, 42], "council": 13, "cours": [7, 38], "cov": [22, 25, 31], "coven": [9, 35], "cover": [7, 11, 13, 15, 18, 25, 31, 36, 37, 41], "coverag": [0, 31, 33], "cpython": 39, "creat": [1, 4, 5, 8, 9, 11, 13, 14, 16, 18, 20, 21, 23, 24, 25, 26, 28, 31, 32, 33, 35, 37, 38, 43, 44], "creation": [26, 37], "creativ": 13, "creativecommon": 13, "credenti": 42, "credit": [7, 39], "criteria": 14, "critic": [1, 13, 26, 35, 36], "crop": 16, "cross": [24, 36], "crowsetta": 40, "crucial": 44, "csv": 8, "cultur": 13, "curat": 19, "current": [2, 5, 6, 22, 23, 26, 27, 28, 29, 31, 36, 37, 39, 41, 42, 43], "currentus": 37, "custom": [3, 4, 13, 21, 26, 38, 44], "customiz": 26, "c\u00e1lculo": 1, "d": [7, 10, 14, 19, 20, 25, 26, 31, 32, 38, 39, 40], "dai": [15, 29, 41], "daili": 20, "danger": 28, "daniel": 43, "dash": [39, 42], "data": [6, 7, 15, 16, 22, 24, 26, 27, 32, 35, 38, 39, 40], "databas": 41, "datafram": [8, 34], "date": [1, 8, 23, 26, 29, 40], "dateutil": 42, "de": 1, "deal": 28, "debug": 16, "decid": [1, 23, 24, 26, 38, 40, 41, 43], "decis": [19, 20, 21, 29, 39], "declar": [19, 20, 25, 26, 31, 39, 41, 42, 43], "decor": 31, "def": [0, 16, 31, 32, 34, 39], "default": [0, 3, 15, 20, 21, 22, 24, 26, 28, 31, 33, 38, 39, 41, 42, 43], "defin": [1, 16, 17, 22, 25, 27, 31, 36, 39, 40, 43, 44], "definit": [0, 7, 16, 20], "degre": 32, "del": 1, "delet": [39, 42, 43, 44], "deliv": 32, "demand": 20, "demo": [36, 43], "demonstr": [8, 36], "denot": [36, 39], "dep": [22, 41], "dep1": 22, "dep2": 22, "depend": [1, 7, 8, 13, 19, 20, 21, 27, 28, 29, 31, 33, 37, 39, 40, 41, 42, 44], "dependency_group": 37, "dependency_link": 27, "deploi": [4, 42], "deploy": [4, 22], "deprec": [8, 29], "depth": 43, "deriv": 13, "desarrollador": 1, "describ": [0, 13, 16, 17, 23, 25, 27, 29, 36, 39, 43], "descript": [0, 1, 8, 16, 25, 29, 37, 39], "design": [13, 14, 16, 31, 36, 40, 43, 44], "desir": 21, "detail": [0, 1, 7, 8, 17, 20, 24, 26, 29, 35, 38, 41], "determin": [25, 29, 43], "dev": [0, 1, 20, 22, 25, 31, 42], "dev_url": 41, "develop": [1, 6, 7, 8, 10, 14, 16, 17, 19, 20, 22, 24, 25, 26, 27, 28, 29, 31, 33, 36, 39, 40, 43], "deviat": 43, "devic": [8, 42], "df": 32, "diagram": [23, 26], "dictionari": [16, 43], "did": [0, 22, 24, 32, 39], "didn": 32, "differ": [0, 1, 13, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 40, 41, 42, 43], "difficult": [7, 16, 21, 24, 26, 31], "dig": 16, "dir": [15, 38], "direct": [0, 14, 17, 35, 40], "directli": [0, 1, 20, 22, 24, 25, 26, 27, 28, 35, 38, 39, 40, 42], "directori": [0, 1, 8, 15, 20, 26, 27, 28, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43], "disadvantag": 32, "discord": [1, 26], "discourag": [28, 36], "discours": [6, 19, 21], "discov": [7, 20, 26, 35], "discuss": [5, 7, 11, 13, 16, 17, 20, 21, 22, 24, 26, 27, 28, 29, 31, 35, 38, 42, 43], "displai": [0, 27], "dist": [26, 27, 42], "distanc": 0, "distinct": 13, "distinguish": 20, "distribut": [20, 21, 22, 24, 25, 26, 28, 31, 37, 39, 40, 41, 43, 44], "distutil": 41, "dive": [20, 40], "diverg": 43, "divers": [1, 19, 23], "diverso": 1, "divid": [13, 40], "do": [0, 4, 6, 13, 14, 16, 17, 20, 21, 24, 27, 29, 31, 32, 35, 37, 38, 40, 41, 42, 43], "doc": [0, 1, 13, 14, 16, 19, 25, 26, 28, 31, 39, 42], "docstr": [5, 11, 17, 20, 39, 40], "doctest": 5, "document": [8, 9, 11, 13, 22, 23, 25, 26, 27, 28, 29, 31, 32, 33, 34, 36, 38, 39, 41, 43], "doe": [0, 1, 6, 15, 20, 21, 26, 27, 29, 32, 34, 41, 42, 43, 44], "doesn": [0, 14, 20, 24, 26, 27, 35, 39, 40, 41, 42], "doi": [13, 14, 36], "domain": [26, 38, 40], "don": [1, 4, 7, 14, 16, 20, 22, 26, 31, 32, 34, 35, 36, 38, 39, 40, 41, 42, 43], "done": [0, 1, 7, 20, 21, 35, 39, 42], "doubl": [20, 22, 38], "down": [0, 16, 26, 28, 39, 41, 42, 43], "download": [4, 15, 27, 37, 38, 40, 41, 42], "downsid": 15, "downstream": 13, "draw": 14, "driven": 24, "drop": [26, 43], "drop_eb": 8, "du0sf_a4": 41, "due": 31, "duplic": 1, "dure": [1, 20, 22, 31, 44], "dynam": [13, 25, 26, 36, 39, 43], "e": [0, 1, 7, 8, 13, 16, 20, 21, 22, 25, 26, 28, 31, 37, 41, 42, 43], "e225": 20, "e231": 20, "e501": 20, "each": [0, 1, 6, 7, 8, 9, 15, 16, 17, 20, 23, 25, 26, 27, 31, 32, 34, 35, 40, 41, 43], "earli": [24, 39], "earlier": 26, "earthpi": 16, "eas": 34, "easi": [3, 15, 17, 25, 26, 27, 29, 36, 43], "easier": [0, 1, 3, 5, 13, 15, 16, 18, 24, 25, 26, 31, 34, 38, 40, 42, 43], "easiest": [23, 38], "easili": [26, 31, 34, 41, 42], "ecg": 8, "ecosystem": [2, 3, 5, 13, 14, 16, 19, 20, 22, 23, 24, 27, 28, 29, 31, 38, 41, 42, 43], "eda": 8, "edf": 8, "edg": 7, "edit": [20, 21, 22, 25, 26, 37, 39, 42, 44], "editor": [0, 1, 14, 20, 23, 31, 38, 39, 40, 41], "effect": 16, "effici": 38, "effort": [1, 8, 20, 23, 28, 40], "egg": 27, "either": [3, 13, 21, 22, 25, 26, 27, 31, 41], "ejemplo": 1, "el": 1, "elaps": 41, "element": [3, 6, 8, 12, 13, 15, 16, 18, 25, 30, 32, 36, 39, 41, 43], "elig": 11, "elimin": 29, "els": [1, 42], "elsewher": 0, "email": [22, 25, 39], "email2": 43, "emerg": 24, "empaticaread": 8, "empow": 34, "empti": [1, 36, 39], "en": [1, 8], "enabl": [8, 34], "enclosur": 13, "encount": [9, 24, 28], "encourag": [1, 9, 13, 19, 24, 26, 38, 43], "end": [0, 19, 20, 23, 25, 27, 30, 31, 33, 38, 40, 41, 43], "energi": 32, "enforc": [9, 20, 29], "engag": [7, 9, 36], "engin": [0, 1], "engrain": 28, "enhanc": [8, 23, 40, 43], "enjoi": 15, "enough": [26, 40], "ensur": [0, 1, 13, 15, 16, 19, 20, 22, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44], "ensurepath": 37, "entail": 41, "enter": [1, 29, 38, 42], "entir": [4, 6, 20, 21, 27, 32, 40, 41, 42], "entrada": 1, "entranc": 16, "entri": [1, 25], "env": [37, 38, 39, 42], "environ": [4, 11, 15, 20, 24, 26, 27, 28, 32, 33, 38, 41, 43], "envt": 39, "epilog": 15, "epydoc": 39, "epytext": 39, "equal": [34, 43], "equat": 29, "equival": [1, 14, 20, 25, 29, 43], "er": 7, "error": [0, 1, 7, 20, 25, 29, 32, 34, 39, 41, 43, 44], "especi": [0, 11, 16, 26, 28, 41], "especial": 1, "espec\u00edfico": 1, "essenti": [8, 31, 44], "esta": 1, "establish": [9, 35, 40], "etc": [0, 1, 12, 20, 25, 39], "etre": 8, "european": 6, "evalu": [12, 14, 31], "even": [0, 6, 16, 20, 22, 26, 29, 33, 34, 43], "event": 40, "eventu": 41, "ever": [38, 40], "everi": [1, 13, 16, 19, 20, 24, 25, 33, 35, 38, 39, 40, 41, 42], "everyon": [34, 43], "everyth": [1, 24, 27, 31, 40, 41, 43, 44], "evolut": 8, "evolv": [7, 19, 23, 24, 34], "ex": 29, "exact": 8, "exactli": 43, "examin": 32, "exampl": [1, 5, 7, 8, 12, 14, 15, 17, 24, 31, 32, 36, 39, 41, 42], "examplepi": [20, 22, 25], "excel": [13, 26, 29], "except": [1, 20, 27, 42], "exclud": 26, "exclus": 44, "execut": [15, 20, 31, 37, 41], "executionpolici": 37, "exist": [0, 1, 11, 23, 24, 28, 29, 32, 34, 35, 39, 42, 44], "exit": [37, 42], "expand": 23, "expect": [9, 16, 22, 30, 31, 32, 33, 34, 39, 41, 44], "experi": [25, 26, 32], "experienc": 7, "experiencia": 1, "expert": [7, 17], "expertis": [1, 19], "explain": [16, 29, 34, 40], "explan": [14, 16, 20, 39], "explanatori": 14, "explicit": 7, "explicitli": [7, 26], "explor": [5, 15, 23, 37, 38], "expos": 42, "express": [29, 37, 40], "ext_obj": 16, "extend": [0, 5, 20], "extens": [1, 6, 15, 16, 18, 19, 22, 23, 24, 25, 27, 29, 31, 40, 41, 42], "extensament": 1, "extent": [16, 29], "extent_json": 16, "extent_to_json": 16, "extern": [1, 22], "extra": [40, 41], "extra_requir": 22, "extract": [0, 1], "f": [20, 25, 34], "f401": 20, "f403": 20, "face": [5, 7, 16, 28, 40], "facilit": 8, "fact": 42, "factor": 26, "fahr_to_celsiu": 32, "fahrenheit": 32, "fahrenheit_to_celsiu": 20, "fail": [0, 14, 28, 33, 34, 41], "failur": [4, 34], "fals": [33, 38], "familiar": [0, 31, 32, 39], "farosread": 8, "fast": [20, 33], "faster": [16, 27, 28], "fat": 20, "fatiando": [9, 10], "favor": 13, "favorit": [3, 38, 39, 41], "fearless": 34, "feat": 29, "featur": [1, 4, 8, 11, 17, 20, 21, 22, 23, 28, 29, 31, 33, 34, 39, 40], "feedback": [0, 20, 34], "feedstock": 24, "feel": [0, 16], "feldroi": 43, "fenc": [0, 3], "fetch": 28, "few": [5, 8, 13, 14, 20, 21, 23, 26, 27, 28, 34, 36, 38, 39, 40, 43], "fewer": [13, 22, 38], "field": [1, 43], "figshar": 28, "figur": [27, 41, 42], "file": [3, 4, 5, 6, 7, 8, 11, 15, 16, 17, 19, 20, 23, 24, 26, 27, 28, 29, 31, 33, 37, 40, 41, 44], "file1": 28, "filenam": [20, 27], "filesystem": 20, "fill": [35, 36, 39, 40], "filter": [23, 25, 27, 43], "final": [14, 22, 24, 26, 29, 32, 36, 39, 40, 43], "final_mean": 32, "find": [0, 1, 3, 7, 14, 16, 17, 19, 20, 24, 25, 26, 27, 29, 31, 36, 37, 38, 40, 41, 42, 43], "fine": [32, 34], "finicki": 15, "finish": [1, 15, 19, 32, 40, 41], "first": [0, 1, 14, 19, 20, 23, 25, 26, 27, 28, 36, 38, 40, 41, 42, 43], "firstnam": [38, 39, 43], "fit": [0, 14, 32, 34, 42], "fix": [0, 1, 7, 8, 9, 20, 26, 29, 33, 40, 43], "fixabl": 20, "fixer": 20, "flag": [20, 31], "flake8": [22, 23, 25, 40], "flat": 23, "fledg": 24, "flesh": 39, "flexibl": [3, 8, 23, 26], "flit": [25, 27, 29, 38], "float": 32, "fly": 5, "focu": [20, 26, 31, 32, 35], "focus": [7, 15, 20, 21, 24, 40], "folder": [0, 1, 23, 28, 41, 42], "follow": [0, 1, 6, 8, 11, 12, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 35, 36, 38, 39, 41, 43, 44], "followup": 42, "forc": 28, "forg": [19, 20, 22, 23, 27, 31, 36, 37, 39, 42], "forget": [1, 39], "forinstanceifyousawasentencelikethisonewithoutani": 20, "fork": 1, "form": [0, 31, 32, 40], "format": [0, 3, 4, 8, 11, 15, 19, 22, 23, 24, 29, 39, 40, 41, 42], "formatt": [22, 25, 40, 43], "former": 0, "fortran": [21, 26], "forum": [0, 19], "forward": [23, 24, 40], "foster": 8, "found": [7, 8, 10, 17, 20, 24, 25, 26, 28, 29, 38, 39, 41, 43], "four": 31, "fr": 1, "frame": 27, "framework": [32, 34], "free": [0, 4, 5, 6, 13], "freedom": 13, "freez": 32, "french": 1, "friend": [20, 43], "friendli": [1, 15, 19, 26, 33, 38, 40, 41], "frill": 26, "from": [1, 5, 6, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 36, 37, 38, 40, 41, 43, 44], "front": [14, 23, 28, 29, 42], "frustrat": 34, "full": [16, 24, 26, 39], "fulli": [4, 26, 29, 43], "fullnam": 43, "funci\u00f3n": 1, "function": [0, 1, 3, 5, 7, 8, 15, 17, 18, 20, 21, 22, 26, 27, 29, 30, 31, 34, 39, 40, 43, 44], "fund": 43, "fundament": 35, "furo": 5, "further": [7, 16, 21, 36, 40, 44], "futur": [0, 11, 16, 19, 21, 25, 26, 29, 34, 37, 39, 40, 41, 42, 43], "fuzzi": 1, "g": [0, 1, 7, 8, 13, 20, 21, 26, 28, 31, 37, 39, 41, 42, 43], "gain": [5, 19, 20, 42], "galleri": 18, "gama": 1, "gap": 26, "gdal": [21, 22, 24, 36], "gdpr": 6, "gemgi": 41, "gener": [1, 6, 13, 16, 17, 19, 21, 22, 26, 27, 29, 30, 31, 35, 41, 43, 44], "generaliz": 40, "geodatafram": 16, "geojson": 16, "geopanda": [5, 16, 17, 22, 27, 31, 39], "geoscienc": 9, "geospati": [22, 24], "get": [7, 13, 14, 15, 16, 17, 19, 20, 22, 23, 24, 25, 26, 28, 31, 37, 39, 40, 41, 42, 43], "gettext": 1, "git": [0, 22, 25, 26, 27, 35, 37, 39, 41], "git_url": 41, "gitbash": 39, "github": [1, 3, 7, 12, 13, 14, 15, 17, 19, 20, 21, 24, 25, 29, 30, 31, 32, 34, 35, 36, 37, 41, 42, 43], "github_usernam": 8, "gitignor": 42, "gitlab": [13, 35, 36, 39, 43], "give": [7, 20, 32, 34], "given": [3, 17, 28, 29, 34, 35], "global": 38, "glossari": 24, "glue": 23, "gnu": [1, 13], "go": [0, 1, 14, 20, 26, 31, 35, 36, 39, 40, 42], "goal": [13, 14, 17, 23, 32, 40, 42, 43], "goe": [1, 19], "gone": 41, "good": [0, 1, 7, 8, 16, 20, 23, 29, 31, 34, 40, 41, 43], "googl": [16, 39], "got": [34, 41], "gpd": 16, "gpl": 13, "gplv3": 13, "grab": 41, "gracefulli": 34, "grain": 32, "granular": 17, "graphic": [1, 30, 38], "grayskul": [22, 37, 40, 42], "great": [0, 1, 4, 8, 14, 16, 22, 23, 26, 31, 36, 38, 40, 42], "greater": [13, 17, 34, 43], "green": [0, 41], "grep": 0, "grid": 15, "group": [20, 25, 26, 28, 29, 40, 41], "groupbi": 32, "grow": [35, 36, 40, 42], "gtagj": 6, "gui": [35, 38], "guid": [7, 10, 12, 16, 17, 21, 22, 25, 26, 28, 29, 31, 35, 36, 39, 40, 43], "guidanc": [8, 13, 19, 23], "guidebook": [1, 22, 35, 43], "guidelin": [7, 10, 11, 20, 29, 35, 43], "gu\u00eda": 1, "gz": [24, 27, 41, 42], "h": [37, 38], "h1": 36, "ha": [3, 8, 11, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 36, 37, 38, 39, 41, 42, 43, 44], "hackergrrl": 14, "had": [28, 32], "hai": 1, "hand": [0, 29], "handl": [26, 27, 34], "happen": [10, 29, 36], "happi": 24, "hard": 29, "harder": [16, 28, 29], "harm": 9, "hash": 22, "hasn": 29, "hatch": [0, 19, 21, 25, 27, 28, 31, 36, 37, 41, 43], "hatch_vc": [26, 27], "hatch_vsc": 29, "hatchl": [21, 26, 27, 31, 39, 41, 42], "have": [0, 1, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44], "haven": 36, "header": [36, 38], "health": [12, 14], "healthi": [9, 40], "hear": 23, "heavili": 26, "help": [2, 6, 7, 8, 11, 13, 14, 16, 17, 19, 20, 21, 22, 23, 25, 26, 27, 29, 30, 31, 32, 34, 35, 36, 38, 39, 40, 41, 42, 43], "her": 25, "here": [0, 1, 5, 7, 8, 9, 14, 17, 18, 19, 20, 22, 24, 25, 27, 28, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 41, 42, 43], "hf": 20, "hi": 41, "hidden": [22, 29], "high": [14, 16, 17, 20, 40], "higher": 43, "highli": 17, "highlight": [0, 1, 8, 13, 14, 26, 32], "hint": 14, "histor": 28, "histori": [29, 39, 40, 43], "hit": 20, "hold": 39, "home": 43, "homepag": 43, "hook": [26, 29], "host": [4, 19, 22, 25, 28, 36, 41], "hous": 24, "how": [7, 9, 10, 11, 12, 17, 18, 19, 21, 26, 29, 30, 31, 32, 33, 36, 38, 39, 42], "howev": [2, 3, 4, 5, 6, 7, 13, 15, 16, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 36, 38, 39, 40, 41, 43], "html": [0, 1, 3, 5, 8, 13, 15, 42], "http": [0, 1, 8, 13, 20, 22, 32, 35, 36, 37, 39, 41, 42, 43], "hub": 8, "human": [25, 29, 43], "hundr": 20, "hunter": 13, "i": [2, 3, 5, 6, 9, 12, 14, 15, 17, 20, 21, 26, 29, 30, 32, 33, 37, 38], "i18n": 1, "icon": 0, "id": [20, 26, 31], "idea": [0, 19, 40], "ideal": [11, 14, 15, 17, 22, 24, 26, 40, 42, 43], "identif": 8, "identifi": [1, 20, 25, 26, 35, 43], "ie": [15, 16, 26], "imag": [0, 16, 20, 35, 40], "imagin": 34, "impact": [39, 42], "impair": 34, "implement": [20, 23, 29, 31, 39], "impli": [27, 29], "import": [6, 7, 9, 14, 16, 20, 22, 23, 26, 27, 29, 30, 31, 32, 34, 35, 36, 38, 40, 41, 42, 43], "importantli": 24, "improv": [1, 8, 22, 34], "inbound": 13, "inclin": 11, "includ": [0, 1, 2, 4, 5, 7, 9, 10, 11, 13, 14, 15, 16, 17, 19, 20, 22, 23, 24, 26, 27, 29, 35, 36, 38, 39, 40, 41, 43], "incompat": [13, 29], "incomplet": [0, 42], "inconsist": 20, "increas": [28, 29], "increment": 16, "independ": [0, 25], "index": [0, 1, 6, 8, 15, 27, 28, 38, 40], "indic": [1, 27, 37, 43], "individu": [8, 26, 31, 32, 40, 43], "info": [27, 39], "inform": [0, 1, 7, 8, 10, 11, 21, 22, 25, 27, 28, 31, 35, 38, 39, 40, 41, 42, 43, 44], "infrastructur": [6, 7, 20, 22, 30], "ini": 27, "init": [26, 36], "initi": [13, 16, 20, 40, 41, 43, 44], "inject": [27, 41], "input": [0, 1, 16, 34, 37, 39, 40], "insensit": 20, "insert": 1, "insid": 1, "instal": [1, 7, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 31, 33, 35, 37, 43, 44], "instanc": [0, 1, 3, 16, 20, 21, 26, 27, 29, 31, 34, 38, 39], "instead": [0, 1, 8, 26, 39, 42], "instil": 34, "instruct": [8, 17, 35, 38, 40, 41, 42], "int": [16, 39], "intact": 44, "integ": [16, 39], "integr": [0, 4, 11, 22, 24, 27, 30, 31, 41], "intend": [1, 20, 25, 27, 32, 39, 40, 41, 43], "intent": [23, 34], "interact": [9, 26, 35, 39, 40], "interest": [0, 6, 10, 19, 20, 40, 43], "interfac": [1, 16, 20, 26, 31, 35, 39, 43, 44], "interfer": 31, "intermediari": 1, "internation": 1, "internet": 41, "interpret": 1, "intimid": 0, "intl": 1, "intrins": 13, "intro": [1, 19], "introduc": [0, 2, 8, 23, 26, 32, 38, 40], "introduct": [19, 34], "invalid": [25, 43], "invalu": 33, "inventori": 22, "invest": 28, "invit": 19, "invok": 37, "involv": [0, 17, 29, 32, 40], "io": [16, 36, 41], "ipynb": 15, "is_empti": 0, "isn": [25, 42, 43], "isol": [31, 32, 38, 41], "isort": 25, "issu": [0, 1, 6, 7, 8, 10, 17, 19, 20, 21, 26, 28, 31, 32, 34, 36, 39, 42, 43], "issuecom": 22, "issuenumb": 8, "ital": 1, "item": [8, 16, 20, 27, 39, 41, 43], "iter": 37, "its": [0, 1, 4, 7, 8, 16, 17, 20, 21, 22, 25, 26, 27, 31, 32, 34, 35, 36, 38, 39, 40, 43], "itself": [1, 7, 9, 14, 20, 23, 40], "jacobin": 13, "januari": [13, 42], "japanes": 1, "jargon": [17, 36], "jeremiah": [22, 43], "job": [33, 40], "join": [1, 8, 19], "jonni": 22, "joss": 36, "journal": 36, "json": 43, "juli": 13, "julia": 24, "jupyt": [3, 28, 36], "just": [0, 7, 11, 13, 21, 23, 26, 27, 36, 39, 42, 43], "keep": [0, 1, 7, 8, 9, 12, 16, 17, 22, 24, 26, 29, 36, 40], "keepachangelog": 8, "kei": [13, 22, 25, 39, 43], "kept": 0, "keyword": [25, 29, 39], "kick": 24, "kira": 14, "know": [6, 7, 14, 16, 19, 21, 26, 29, 31, 35, 36, 41], "knowledg": [23, 26, 41], "known": [12, 20, 24, 25, 27, 32, 34, 41], "l": [1, 41], "l10n": 1, "la": 1, "lab": 11, "label": [1, 29], "land": [5, 14, 15, 25, 27, 35, 36, 41, 42, 43], "lang": 1, "languag": [0, 9, 13, 14, 17, 22, 23, 24, 25, 26, 27, 28, 29, 31, 35, 36, 38, 39, 40, 41, 43], "language_vers": 20, "larg": [13, 20, 28, 40], "larger": [0, 28, 40], "largest": 26, "last": [8, 31, 35, 41, 43], "lastnam": [38, 39, 43], "later": [0, 36, 38, 39, 42], "latest": [1, 7, 8, 33, 38, 41], "launch": 1, "layer": [16, 23, 26], "layout": [23, 38, 39], "lc_messag": 1, "lead": [20, 24, 27, 31, 36], "leah": [38, 39], "leahawass": [39, 42], "learn": [0, 1, 3, 13, 19, 20, 22, 24, 28, 30, 31, 32, 33, 38, 39], "least": [7, 39], "leav": [0, 20, 26, 34, 36, 41], "legal": [13, 35, 36, 40, 43], "len": 0, "lend": 23, "length": 20, "lengthi": 20, "less": [0, 14, 15, 20, 26, 32, 34, 43], "lesson": [13, 34, 35, 36, 38, 40, 41, 42, 43, 44], "let": [1, 6, 13, 14, 17, 20, 22, 25, 27, 31, 34, 36, 39, 40, 41, 44], "letter": [1, 39], "level": [12, 14, 15, 16, 17, 22, 23, 28, 29, 32, 39, 40], "librari": [8, 14, 17, 20, 22, 31, 38, 41, 42, 43], "licens": [0, 7, 10, 12, 14, 19, 25, 27, 28, 36, 38, 39, 40, 41], "license_fil": 41, "life": 32, "lifecycl": 40, "lightweight": 6, "like": [0, 1, 2, 6, 7, 10, 13, 14, 15, 19, 20, 21, 22, 24, 25, 26, 27, 31, 32, 34, 36, 38, 39, 40, 41, 43, 44], "likelihood": 22, "limit": [3, 24, 26, 27, 42, 43], "line": [0, 16, 19, 20, 25, 26, 29, 38, 43, 44], "link": [0, 7, 8, 10, 11, 12, 15, 17, 25, 29, 31, 33, 35, 36, 39, 40, 41, 43], "lint": [22, 25, 41], "linter": [22, 23, 40, 41, 43], "linux": [0, 13, 27, 31, 33, 37, 38, 41, 42], "list": [0, 3, 6, 7, 14, 15, 16, 17, 19, 20, 22, 24, 25, 26, 27, 31, 33, 37, 39, 40, 41, 42, 43], "literalinclud": 0, "live": [0, 1, 8, 11, 15, 19, 23, 24, 28, 31, 39, 40, 42], "ll": [35, 38, 39, 40, 42], "lo": 1, "load": 16, "local": [4, 11, 19, 22, 24, 26, 28, 29, 30, 31, 33, 35, 37, 38, 40, 41, 42], "localhost": [0, 1], "locat": [1, 9, 10, 14, 20, 22, 28, 29, 31, 33, 36, 37, 38, 39, 41, 42, 44], "lock": 26, "log": [0, 42], "login": 42, "long": [20, 25, 26, 29, 34, 40, 42, 43], "longer": [0, 16, 20, 26, 43], "look": [0, 1, 6, 12, 15, 20, 22, 23, 25, 26, 27, 31, 34, 36, 38, 41, 42, 43, 44], "loop": 20, "lot": [16, 43], "love": 5, "low": 41, "lower": [16, 41, 43], "lowercas": 39, "lowest": 43, "lr": 0, "lwasser": 41, "m": [0, 1, 20, 25, 26, 29, 33, 36, 37, 41, 42], "mac": [22, 27, 31, 33, 38, 39, 41, 42], "machin": [27, 40, 43], "maco": [0, 20, 31, 33, 37], "made": [0, 1, 8, 21, 23, 29, 33], "magic": 34, "magnitud": 8, "mai": [0, 1, 6, 8, 9, 11, 13, 15, 16, 17, 20, 21, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 36, 39, 40, 41, 42, 43, 44], "main": [0, 26, 29, 33, 37, 38, 39, 41, 42, 44], "maintain": [0, 1, 2, 4, 9, 11, 13, 14, 16, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 33, 34, 35, 36, 38, 42], "mainten": [11, 14, 15, 28, 29, 34, 36, 40, 42], "major": [7, 13, 26, 29, 37], "make": [1, 3, 6, 8, 11, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 38, 41, 42, 44], "makefil": [26, 27], "malici": 27, "mamba": 39, "mambaforg": 39, "manag": [0, 1, 20, 22, 25, 26, 27, 31, 40, 41, 42, 44], "mani": [1, 3, 4, 6, 9, 12, 13, 15, 17, 20, 21, 23, 24, 26, 27, 28, 29, 36, 37, 38, 39, 41, 43], "manifest": [26, 27], "manner": 29, "manual": [20, 24, 26, 36, 37, 39, 41, 43, 44], "map": 1, "mark": 1, "markdown": [1, 19, 35, 36, 39], "markupsaf": 39, "mastodon": 6, "match": [24, 41, 42], "matomo": 6, "matplotlib": [15, 28, 39], "matrix": [26, 31, 33], "matter": [23, 42], "matur": [26, 27, 43], "maxi": 16, "maxim": 14, "maxx": 16, "mccabe": [20, 25], "md": [1, 3, 7, 9, 11, 15, 17, 25, 27, 28, 35, 39, 40, 42, 43], "mean": [0, 1, 5, 13, 16, 20, 22, 24, 26, 27, 28, 29, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43], "meaning": 41, "meant": 1, "measur": [12, 14], "mechan": 24, "media": 6, "meet": [14, 23], "member": 23, "mention": [12, 14, 20, 25, 26, 42], "merg": [0, 1, 20, 24, 40, 41], "meson": [21, 26], "mesonpi": 21, "messag": [0, 20, 26, 29, 34, 41], "meta": 41, "metadata": [6, 19, 22, 23, 24, 26, 28, 29, 35, 38, 40, 41, 42], "method": [0, 8, 15, 17, 18, 22, 32, 34, 38, 40], "mib": 41, "might": [1, 2, 3, 7, 8, 9, 14, 16, 17, 18, 20, 22, 23, 24, 25, 28, 29, 31, 32, 34, 36, 38, 39, 40, 41, 43], "migrat": [8, 21, 38, 39], "mimic": 15, "mind": [16, 17, 22, 26], "mini": 16, "minim": [22, 24, 25, 41, 43], "minimum": [12, 23, 41, 43], "minor": [26, 27, 29, 37], "minx": 16, "misc": 20, "misconcept": 39, "mismatch": 22, "miss": [8, 20, 26, 28, 31, 32, 34, 41, 43], "mistak": 34, "misus": 36, "mit": [13, 27, 35, 38, 39, 41, 43], "mix": [24, 41], "mk7f5y0t": 42, "mkdoc": [2, 5], "mo": 1, "mod_plot": 29, "mode": [22, 25, 26, 37, 38, 39, 42], "model": 20, "moder": 35, "modern": [23, 25, 26, 28, 29, 31], "modif": [0, 5], "modifi": [0, 1, 8, 13, 15, 20, 29, 40, 41, 43], "modul": [16, 20, 21, 40, 41, 42, 44], "modulea": 28, "moduleb": 28, "more": [0, 1, 3, 4, 6, 7, 8, 13, 14, 16, 17, 19, 20, 21, 22, 23, 25, 27, 28, 29, 30, 31, 32, 33, 35, 36, 38, 39, 41, 44], "most": [1, 2, 3, 5, 6, 13, 21, 23, 24, 25, 26, 27, 29, 31, 35, 38, 39, 40, 41, 43], "move": [6, 8, 12, 14, 22, 26, 28, 43], "movement": 13, "movingpanda": [7, 12, 14, 24], "mozilla": 11, "msgid": 1, "msgpack": 39, "msgstr": 1, "msi": 38, "much": [1, 25, 26, 31], "multilin": [1, 43], "multipl": [1, 16, 20, 22, 26, 29, 31, 37, 39, 40, 41], "murphi": 34, "must": [21, 22, 41, 43], "my_depend": 22, "my_nifty_packag": 41, "my_packag": 44, "mydepend": 22, "mypackag": 28, "mypackagereponam": 28, "mypi": [16, 39, 43], "myst": [0, 2, 5, 17, 19], "n": 26, "name": [0, 1, 8, 15, 17, 20, 22, 24, 25, 26, 27, 28, 29, 31, 33, 35, 40, 41, 42], "napoleon": 16, "nativ": [3, 5], "natur": 32, "navig": [0, 1, 8, 17, 19, 26, 39, 41, 42, 44], "necessari": [0, 1, 21, 22, 37, 44], "need": [0, 3, 4, 7, 8, 11, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 35, 36, 38, 40, 41, 42, 43, 44], "neg": [9, 32, 35], "neither": [16, 39], "net": 34, "network": 27, "never": [20, 26, 29, 32], "new": [7, 8, 11, 13, 15, 16, 20, 23, 24, 26, 28, 32, 33, 34, 35, 36, 37, 40, 41, 42, 44], "newbi": 43, "newer": [22, 23, 26], "newli": [41, 42], "newlin": 20, "next": [0, 1, 19, 20, 26, 35, 36, 39, 41, 42], "nice": [3, 11, 15, 22, 25, 43], "nick": 34, "noarch": 41, "non": [19, 21, 24, 25, 36, 37, 43], "none": [27, 41, 42], "nor": 39, "norm": 19, "normal": [1, 27, 28, 29], "notabl": 8, "note": [1, 7, 17, 21, 26, 27, 28, 31, 32, 36, 37, 38, 40, 41, 42, 43], "notebook": [3, 28, 36], "notic": [1, 9, 12, 15, 16, 17, 20, 22, 25, 27, 28, 31, 35, 38, 39, 41, 42, 43], "notif": 24, "nov": [7, 12, 14], "now": [22, 24, 29, 35, 36, 39, 41, 42, 43, 44], "nox": [0, 1, 22, 26, 30, 33, 39, 40], "noxfil": [1, 31], "np": 16, "nterfac": 16, "nuanc": [15, 21, 26], "nuestra": 1, "num1": 16, "num2": 16, "number": [1, 8, 16, 22, 26, 27, 31, 34, 38, 39, 41], "numer": [23, 25, 26, 28, 40], "numpi": [22, 23, 27, 28, 34, 39, 40, 42, 43], "o": [0, 1, 20, 22, 25, 33, 37, 41], "object": [1, 16, 39], "obtain": 39, "obviou": [16, 25, 43], "occur": [32, 34, 40, 41], "off": 24, "offer": [3, 4, 6, 26, 31, 38, 40], "offici": [41, 42], "often": [1, 8, 14, 16, 20, 21, 22, 23, 26, 27, 28, 29, 36, 39, 40, 43], "ok": [39, 41, 43], "old": 7, "older": [4, 26], "oldest": 43, "onboard": [11, 40], "onc": [0, 1, 9, 14, 20, 22, 24, 27, 33, 35, 38, 39, 40, 41, 42, 43], "one": [0, 1, 6, 10, 16, 20, 21, 22, 23, 25, 26, 27, 29, 31, 34, 35, 36, 38, 39, 40, 41, 42, 43], "ones": [0, 35], "onli": [0, 1, 8, 20, 21, 22, 24, 25, 26, 27, 29, 31, 33, 37, 39, 40, 41, 42, 43, 44], "onlin": [0, 2, 12, 13, 14, 24, 30, 31, 33, 36, 40], "onpythonpackag": 15, "onto": [27, 41], "open": [0, 1, 6, 19, 20, 21, 23, 24, 26, 28, 35, 36, 37, 39, 40, 41, 42, 43, 44], "openscm": 28, "opensourc": 35, "oper": [0, 7, 15, 16, 20, 25, 26, 27, 29, 30, 33, 37, 38, 40, 43], "oppos": 26, "opt": 11, "optim": 2, "option": [0, 1, 2, 3, 4, 6, 13, 14, 19, 23, 24, 26, 29, 31, 36, 38], "order": [1, 9, 11, 16, 20, 21, 22, 24, 25, 27, 36, 39, 41, 42, 43], "org": [1, 8, 13, 14, 22, 25, 28, 35, 36, 37, 38, 39, 41, 42, 43], "organ": [8, 25, 26, 27, 31, 36, 39, 40, 42, 43], "origin": [24, 25, 32, 43], "osi": [0, 13, 25, 27, 40, 43], "other": [0, 1, 3, 4, 5, 7, 8, 9, 12, 13, 14, 20, 23, 24, 25, 26, 27, 28, 32, 34, 35, 36, 39, 41, 42, 43], "otherwis": [0, 16, 29, 31, 41], "ou": 41, "our": [1, 5, 7, 19, 21, 22, 23, 25, 26, 27, 28, 32, 35, 36, 38, 39, 40, 41, 43], "out": [3, 8, 11, 13, 15, 20, 23, 24, 25, 26, 27, 28, 35, 36, 38, 40, 41, 42, 43], "outbound": 13, "outcom": 34, "outlier": [1, 34], "outlin": [11, 36], "output": [1, 15, 16, 20, 27, 31, 38, 40, 41], "outsid": [1, 28, 33, 34, 40], "over": [6, 8, 14, 19, 26, 28, 34, 40, 41, 43], "overflow": 13, "overlap": 43, "overload": 14, "overrid": 26, "oversight": 31, "overus": 14, "overview": [13, 21, 22, 23, 25, 26, 28, 29, 36, 41, 43], "overwhelm": 14, "overwritten": 20, "own": [0, 9, 13, 21, 26, 27, 31, 32, 40, 41, 43], "p": 16, "pack": 40, "packag": [3, 6, 33, 38, 44], "package_nam": 37, "packagenam": [22, 36, 39, 41], "page": [0, 1, 5, 6, 14, 15, 16, 19, 22, 23, 24, 25, 26, 27, 28, 31, 32, 34, 35, 36, 39, 40, 41, 42, 43], "paid": 4, "pair": [25, 43], "panda": [12, 14, 20, 22, 27, 28, 34, 39, 40, 42, 43], "pandera": [14, 40], "paper": 13, "paquet": 1, "para": 1, "paramet": [1, 16, 31, 32, 39], "parenthes": 37, "parser": 5, "part": [0, 13, 17, 21, 22, 27, 28, 30, 32, 34, 41], "parti": [8, 20, 25], "participa": 1, "particular": [0, 25, 31, 32], "particularli": [15, 22, 26, 27, 28, 31, 40, 41, 42, 44], "partnership": 36, "pass": [1, 14, 16, 20, 31, 32, 41], "password": 42, "past": [35, 36, 42], "patch": [26, 29, 37], "path": [0, 22, 28, 37, 38, 39, 42], "path_to_exampl": 16, "patient": 41, "pdf": 4, "pdm": [21, 25, 27, 38, 43], "peer": [7, 13, 19, 20, 23, 29, 36, 40], "pencil": 0, "peopl": [3, 6, 7, 9, 13, 17, 22, 24, 25, 28, 29, 33, 34, 35, 36, 40, 43], "pep": [20, 23, 26, 29], "pep8": 20, "per": 15, "percentag": [1, 41], "perfect": [36, 42], "perform": [1, 16, 22, 23, 25, 26, 32, 34, 36, 40], "period": [32, 43], "perman": 42, "permiss": [35, 38, 42], "person": [0, 1, 20, 40, 42, 43], "perspect": 13, "pervas": 39, "philosophi": 13, "phish": 42, "pick": [23, 24, 26, 43], "pictur": 32, "piec": [19, 32, 34], "ping": 41, "pip": [0, 1, 20, 25, 26, 31, 33, 36, 37, 38, 40, 41, 42, 43, 44], "pipelin": 40, "pipx": [37, 38, 41, 44], "pkg": [27, 38], "place": [0, 10, 21, 22, 23, 25, 26, 28, 35, 36, 39, 42, 43], "placehold": 35, "plai": 31, "plain": 0, "plan": [1, 13, 22, 23, 26, 28, 39, 41, 42], "platform": [2, 12, 22, 25, 27, 30, 35, 36, 40], "plausibl": 6, "playground": 20, "pleas": [0, 1, 7, 14, 21, 23, 41], "plenti": 14, "plot": [15, 22, 40], "plot_": 15, "plot_sampl": 15, "plot_tutori": 15, "plotm": 22, "plu": 22, "plugin": [1, 21, 26, 29, 31, 38], "po": 1, "poedit": 1, "poetri": [8, 21, 22, 25, 27, 38, 43], "point": [22, 25, 32, 34, 36, 39, 41, 42, 43], "poliastro": 28, "polici": [29, 37], "polit": 13, "polygon": 16, "pooch": 28, "popul": [18, 25, 26, 27, 35, 36, 39, 41, 43], "popular": [5, 6, 26, 31, 38, 39], "por": 1, "portabl": 1, "portion": [32, 35], "possibl": [0, 6, 17, 20, 32, 43], "post": [0, 25, 27, 35, 40, 41, 43], "post1": 42, "post2": 27, "potenti": [0, 14, 15, 20, 26, 28, 29, 30, 33, 40], "power": 13, "powershel": 37, "ppli": 16, "pr": [0, 20, 24, 40, 41], "practic": [7, 13, 18, 19, 23, 25, 27, 29, 31, 40, 41, 42, 43], "pre": [0, 27, 29, 42, 44], "precis": 43, "precisa": 1, "precommit": 20, "prefer": [1, 2, 3, 5, 7, 8, 15, 20, 21, 26, 28, 29, 38, 39, 41, 43], "prescrib": 43, "present": [0, 14, 15, 28, 34], "preserv": 13, "pretend": [22, 32], "prettier": 0, "preview": [0, 6, 35], "previou": [35, 36, 39, 41, 42, 43, 44], "previous": [22, 42], "primari": [8, 13, 28, 29, 41, 43], "primarili": 39, "principiant": 1, "print": [25, 27, 37, 38], "prior": [22, 24, 25, 39], "prioriti": 28, "privaci": 6, "privat": 24, "pro": [0, 15], "probabl": [14, 43], "problem": [13, 25, 36], "problema": 1, "problemat": [1, 26, 34], "proce": 13, "proceed": 44, "proceso": 1, "process": [4, 11, 13, 16, 19, 20, 22, 23, 24, 25, 27, 30, 31, 36, 37, 40, 41, 42, 43, 44], "processor": 27, "produc": [1, 15], "product": [27, 39, 42, 43], "profici": 11, "program": [0, 23, 25, 26, 27, 32, 39, 43], "programm": [7, 16, 17], "progress": [4, 8], "prohibit": 13, "project": [0, 1, 4, 8, 13, 14, 17, 20, 22, 23, 24, 26, 29, 30, 31, 34, 35, 36, 38, 41, 42, 44], "projectnam": 25, "promot": 31, "prompt": [39, 42, 44], "proof": [0, 28], "proper": [1, 41], "properli": [14, 16, 22, 25, 27, 28, 32, 33, 34, 37, 41, 43], "proprietari": 13, "prose": 0, "protect": [0, 6, 9, 13, 35], "protocol": [6, 23], "provid": [0, 1, 6, 8, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 29, 30, 31, 32, 34, 35, 39, 40, 41, 42, 43, 44], "prueba": 1, "pru\u00e9balo": 1, "psf": [13, 20], "public": [8, 13, 19, 24, 25, 39, 40, 43], "publicli": 40, "publish": [2, 14, 17, 19, 22, 23, 25, 26, 27, 29, 35, 36, 38, 39, 44], "pued": 1, "pull": [1, 4, 8, 10, 11, 15, 20, 22, 24, 34, 35, 40], "pull_request": 33, "pullrequestreview": 22, "punctuat": 20, "pure": [0, 19, 20, 22, 23, 25, 27, 29, 39, 41], "purpos": [8, 13, 27, 32], "push": [0, 1, 4, 24, 29, 33, 39, 40], "put": 32, "puzzl": [32, 34], "py": [0, 1, 6, 8, 15, 16, 20, 22, 28, 29, 31, 36, 38, 40, 41], "py3": [27, 42], "pycharm": [20, 26], "pycodestyl": [20, 25], "pycqa": 20, "pyd": 26, "pydant": 43, "pydata": [5, 6, 25], "pydata_sphinx_them": 22, "pyenv": [41, 42], "pyflak": [20, 25], "pygmt": 10, "pylanc": 26, "pyo": [36, 39], "pyobject": 0, "pyopensci": [1, 6, 8, 11, 13, 14, 20, 22, 24, 25, 27, 29, 32, 35, 36, 38, 39, 41, 42, 43], "pyos_packag": 39, "pyosdev": 39, "pyosmeta": 43, "pyospackag": [31, 32, 33, 36, 41, 42, 43], "pyospackage_yournameher": 42, "pyospkg": 42, "pypa": [22, 26, 27, 28, 43], "pypi": [14, 19, 22, 23, 25, 26, 28, 29, 31, 35, 36, 37, 38, 39, 44], "pyproject": [0, 8, 19, 20, 21, 23, 26, 27, 28, 31, 35, 38, 41, 42], "pytest": [22, 25, 28, 32, 33], "python": [2, 3, 14, 25, 33, 37, 38, 44], "python3": [20, 26, 31], "pythonista": [1, 19], "pythonsafepath": 28, "pytz": 42, "p\u00e1gina": 1, "qualiti": [7, 14, 16, 20, 38, 40], "quarter": 20, "quarterli": 20, "que": 1, "question": [0, 9, 10, 17, 19, 21, 24, 26, 40], "quick": [1, 5, 14, 17, 20, 26, 36, 39], "quickli": [4, 14, 15, 16, 17, 28, 34, 43], "quickstart": 28, "quirk": 43, "quit": 26, "quot": [20, 22], "r": [24, 26, 37, 42, 43], "r8": 41, "rais": [1, 25, 43], "randomli": 31, "rang": [1, 19, 23, 26, 43], "rare": 39, "raster": 16, "rather": [0, 14, 15, 17, 20, 22, 25, 26, 28, 29, 31, 39, 40, 41, 42], "raw": 27, "re": [20, 25, 31, 34, 35, 42, 44], "read": [8, 13, 14, 16, 17, 18, 19, 20, 25, 26, 27, 28, 35, 40, 43], "read_fil": 16, "readabl": [20, 25, 43], "reader": 17, "readi": [8, 20, 24, 27, 32, 39, 40, 41, 42], "readm": [3, 7, 10, 12, 17, 19, 25, 26, 27, 28, 35, 39, 41, 42], "readthedoc": [4, 22], "real": [32, 42], "realiz": 40, "realiza": 1, "realli": [22, 24, 40, 42, 43], "reason": [13, 16, 22, 23, 27, 28, 29], "rebuild": [24, 27, 41, 42], "receiv": [26, 41], "recent": [3, 22, 24, 25, 43], "recip": [22, 24, 37, 40], "reclaim": 13, "recogn": [26, 39, 41], "recognit": 8, "recommend": [0, 11, 19, 21, 22, 26, 27, 28, 29, 31, 35, 36, 38, 39, 42, 43], "record": [8, 20, 27, 40], "recov": 41, "rectangl": 0, "rectifi": 34, "red": [0, 41], "redistribut": 13, "reduc": [20, 22, 26], "ref": [20, 36], "refactor": [0, 32, 34], "refer": [0, 1, 3, 4, 8, 16, 17, 19, 20, 21, 22, 23, 26, 27, 29, 32, 34, 35, 39, 40, 41, 43], "referenc": 35, "reflect": 44, "reformat": 20, "regard": 40, "regardless": [20, 24], "regul": 6, "regularli": [39, 42], "reject": 43, "rel": 0, "relat": [0, 1, 20, 24, 31, 39, 42], "relationship": 39, "releas": [11, 19, 20, 24, 26, 27, 36, 39, 40, 41, 42], "release_languag": 1, "relev": [0, 8, 40, 43], "reli": [21, 26, 29, 32], "reload": 0, "remain": [8, 13, 40, 44], "rememb": [7, 20, 22, 36, 40, 41, 42], "remot": 39, "remotesign": 37, "remov": [1, 8, 20, 25, 26, 39], "renam": 42, "render": [3, 15, 43], "reorder": 20, "repeat": 40, "replac": [0, 1, 16, 20, 21, 25, 39], "replic": 31, "repo": [0, 12, 17, 19, 20, 21, 26, 29, 37, 38, 39, 40, 41], "report": [7, 31, 40, 43], "repositori": [1, 4, 7, 9, 10, 11, 13, 14, 19, 20, 22, 25, 26, 27, 28, 29, 33, 35, 36, 39, 40, 42, 43, 44], "repres": [13, 16, 24, 25, 26, 27, 31, 32, 34, 41, 43], "reproduc": [13, 15, 31, 40], "republish": 43, "request": [1, 4, 8, 10, 11, 15, 20, 24, 26, 34, 40, 43], "requir": [0, 1, 6, 7, 11, 13, 16, 20, 21, 24, 26, 27, 29, 31, 34, 36, 38, 39, 40, 41, 42, 44], "research": 7, "resolv": 43, "resourc": [1, 8, 19, 21, 25, 28, 40, 43], "respect": 28, "respond": 41, "respons": 1, "rest": [0, 16, 19, 22], "restart": [38, 39], "restmethod": 37, "restrict": 13, "restructur": 3, "result": [26, 34, 39], "result2": 34, "result3": 34, "retriev": [38, 43], "return": [0, 16, 20, 26, 29, 32, 34, 39, 42], "reus": [35, 40, 42], "rev": 20, "review": [11, 12, 13, 14, 15, 19, 20, 22, 24, 29, 34, 35, 36, 39, 40, 41, 43, 44], "revis": [1, 14], "revisada": 1, "rewrit": 0, "rich": 3, "richard": 13, "right": [0, 13, 24, 34, 41], "rioxarrai": 22, "risen": 3, "risk": [22, 26], "rmnp": 16, "road": 20, "rob": 13, "robust": 32, "rogram": 16, "root": [9, 10, 13, 14, 20, 28, 31, 33, 35, 36, 39, 43], "round": 19, "rst": [0, 2, 5, 15], "ruff": [22, 23, 25, 43], "rule": [7, 9, 20, 43], "run": [0, 1, 4, 5, 11, 19, 22, 25, 26, 27, 28, 29, 30, 32, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44], "runner": 31, "runtim": 24, "sa": 13, "safe": [42, 43, 44], "safeti": 34, "sai": [13, 34], "same": [0, 1, 8, 13, 20, 24, 25, 26, 27, 28, 29, 32, 34, 39, 40, 41, 42, 43], "satisfi": [0, 1], "save": [0, 20, 34, 35, 41], "saw": [16, 20], "scan": [16, 20], "scene": 42, "scheme": 8, "school": [14, 17], "scienc": [7, 11, 19], "scientif": [3, 5, 14, 16, 20, 22, 23, 24, 26, 29, 31, 32, 38, 40, 41, 43], "scientist": [1, 40], "scikit": [21, 26, 28], "scipi": [9, 23, 28], "scm": 25, "scoop": 37, "scope": [8, 23, 36, 37, 42, 43], "scratch": 39, "screen": [7, 12, 14, 38], "screenshot": [12, 27], "script": [0, 15, 16, 25, 27, 37, 40, 41], "script_nam": 37, "scroll": [0, 42], "sdist": [19, 24, 25, 26, 37, 39, 40, 41], "sea": 1, "seaborn": 22, "search": [25, 28, 42], "second": [0, 1, 15, 26, 39, 40], "secondperson": 43, "section": [0, 1, 2, 12, 15, 16, 17, 18, 19, 22, 23, 25, 26, 27, 28, 29, 30, 32, 34, 35, 39, 42, 43], "secur": [22, 42], "see": [0, 1, 5, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 25, 26, 27, 28, 29, 34, 36, 38, 39, 40, 41, 42, 43, 44], "seen": 26, "select": [13, 20, 21, 23, 25, 26, 35, 38, 42, 43], "self": [14, 16, 29, 31, 34, 40], "semant": [26, 28], "semver": [8, 23], "send": 36, "sens": [0, 8, 16, 29, 36], "sentenc": [14, 16, 20], "separ": [0, 1, 15, 16, 25, 26, 41, 42, 43], "septemb": 13, "sequenc": 20, "seri": [0, 1, 15, 23, 32, 38, 39, 40, 41], "serv": [5, 8, 14, 26, 31, 32, 34, 43], "server": [1, 22], "servic": [4, 22, 41, 42], "session": [0, 1, 31, 39], "set": [5, 6, 7, 11, 15, 19, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44], "set_window": 8, "setup": [0, 4, 8, 11, 15, 20, 21, 22, 23, 26, 31, 33, 38, 41, 43], "setuptool": [8, 22, 27], "setuptools_scm": [25, 26, 27], "setuptooms_scm": 25, "sever": [14, 16, 17, 20, 24, 25, 26, 27, 35, 38, 40], "sg_execution_tim": 15, "sh": 37, "sha256": 41, "shape": [16, 19, 41], "shapefil": 16, "share": [0, 6, 13, 23, 39, 40, 41], "sharealik": 13, "shell": [25, 33, 35, 37, 38, 39, 41, 42], "shield": 36, "shift": [6, 25], "ship": 41, "short": [1, 16, 17, 25, 32, 36, 39], "shortcut": 20, "shorten": 31, "shortli": 41, "shot": [7, 12, 14], "should": [0, 1, 7, 9, 13, 15, 16, 17, 18, 20, 22, 23, 24, 25, 26, 30, 32, 33, 34, 36, 38, 39, 41, 42, 43], "show": [0, 11, 12, 14, 15, 16, 19, 23, 26, 27, 30, 31, 32, 35, 36, 37, 39, 42], "showcas": 17, "shown": [0, 20, 27], "shp": 16, "si": 1, "side": 35, "sign": [36, 39], "signific": [8, 20, 28], "similar": [1, 12, 14, 16, 20, 26, 27, 35, 39, 41, 42, 43], "similarli": [15, 24, 29, 32, 43], "simpl": [3, 7, 8, 14, 16, 17, 20, 21, 23, 24, 25, 26, 28, 37, 39, 42], "simpler": [3, 13, 21, 22, 29], "simpli": [16, 36, 40, 41, 42], "simplic": 3, "simplifi": [16, 24, 25, 29, 31], "simul": 32, "sinc": [1, 8, 20, 29, 39, 43, 44], "singl": [15, 16, 20, 21, 22, 25, 26, 29, 31, 32, 36, 40, 43], "sit": 8, "site": [0, 6, 14, 21], "situat": 34, "six": 42, "size": 28, "skill": [1, 19, 43], "skip": [1, 11, 31, 35, 36, 39, 43], "slack": 6, "slightli": [15, 16, 26, 28], "slow": 28, "slower": 29, "slowli": 6, "small": [0, 17, 20, 28, 29, 36, 41], "smaller": [24, 26, 28, 32, 40], "smooth": 32, "snapshot": 26, "snyk": [12, 14], "so": [0, 1, 7, 13, 14, 20, 22, 23, 24, 26, 27, 32, 39, 40, 41, 42, 43], "social": 6, "softwar": [1, 7, 8, 22, 24, 27, 32, 33, 34, 35, 36, 40, 43], "solv": 36, "some": [1, 2, 4, 6, 8, 9, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 36, 39, 40, 41, 43, 44], "someon": [1, 10, 13, 14, 15, 17, 22, 25, 28, 34, 36, 40, 41, 42], "someth": [0, 7, 8, 22, 27, 34, 36, 38, 39, 40, 41, 42, 43], "sometim": [1, 21, 25, 29, 31, 34, 40, 43], "somewher": 40, "soon": [1, 40], "sort": [20, 25, 27, 43], "sourc": [0, 1, 6, 20, 23, 24, 29, 35, 36, 37, 39, 40, 41, 42, 43], "sourmash": 28, "space": [0, 1, 20, 28, 39], "spacelabsread": 8, "spanish": 1, "spatial": [16, 17, 22, 41], "spdx": 38, "speak": 24, "spec": [8, 23], "special": [1, 13, 34], "specif": [1, 7, 8, 11, 13, 16, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 43, 44], "specifi": [0, 1, 11, 14, 15, 16, 17, 20, 22, 25, 26, 31, 33, 35, 39], "spectrum": 40, "spell": [7, 43], "spend": [14, 32, 41], "sphinx": [0, 1, 2, 3, 16, 17, 18, 19, 22, 25, 42], "sphinxcontrib": 6, "split": 1, "spot": 34, "spreadsheet": 32, "squar": [39, 43], "src": [20, 23, 38, 39, 42, 44], "stabl": [24, 43], "stack": 13, "stackoverflow": 13, "stage": [0, 20, 24], "stai": [0, 8, 34], "stallman": 13, "stand": [16, 42], "standalon": 42, "standard": [8, 11, 20, 23, 24, 25, 26, 29, 35, 40, 43], "start": [0, 7, 13, 14, 15, 16, 17, 19, 20, 23, 25, 26, 28, 31, 32, 35, 38, 39, 40, 41, 42], "stat": 1, "state": [14, 17, 26, 36], "static": [8, 16, 41, 43], "statist": 1, "statu": [0, 14, 25, 27, 39, 43], "step": [0, 1, 8, 16, 17, 21, 24, 27, 28, 29, 31, 32, 33, 37, 40], "stick": 26, "sticki": 13, "still": [0, 6, 7, 22, 26, 29, 34, 40, 43, 44], "storag": 28, "store": [1, 17, 25, 26, 27, 29, 38, 39, 41, 42, 43], "straight": [23, 24, 40], "straightforward": 1, "strategi": 33, "strava_api_stub": 27, "stravalib": [20, 27], "streamlin": [20, 26, 31, 44], "strict": 26, "string": [0, 16, 20, 25, 43], "strong": 13, "stronger": 32, "strongli": [11, 22, 25, 26, 28, 42, 43], "structur": [1, 7, 8, 15, 16, 19, 20, 25, 26, 27, 34, 36, 37, 40, 42, 43, 44], "struggl": 41, "studi": 40, "studio": 1, "style": [0, 1, 11, 19, 23, 38, 39, 40], "stylist": 20, "styliz": 22, "sub": [22, 25], "subdirectori": 39, "subgroup": 22, "submiss": 41, "submit": [6, 7, 10, 11, 13, 14, 20, 22, 23, 33, 40], "subsequ": [27, 42], "subset": 7, "substitut": 39, "success": [4, 38], "successfulli": [15, 20, 38, 41, 42, 44], "suggest": [0, 1, 3, 4, 7, 13, 16, 20, 21, 22, 25, 28, 29, 35, 36, 38, 39, 41, 42, 43], "suit": [11, 14, 15, 16, 20, 22, 23, 24, 25, 27, 31, 32, 33, 34, 38, 40, 41], "suitabl": 21, "sullivan": 14, "sum": [16, 39], "summar": [26, 37], "summari": [35, 41], "sunpi": 35, "suppli": 34, "support": [1, 3, 4, 5, 6, 7, 15, 16, 17, 19, 21, 23, 24, 25, 27, 29, 31, 32, 35, 38, 39, 41, 42, 43], "suppos": 34, "sure": [0, 1, 14, 16, 20, 28, 32, 34, 35, 36, 38, 40, 41, 42, 43, 44], "surround": [19, 20, 26, 32], "survei": 26, "svg": 36, "sw": 13, "swap": 25, "switch": [8, 26], "symbol": 26, "symlink": 26, "sync": [0, 35], "syntax": [1, 2, 5, 17, 20, 22, 25, 27, 31, 37, 39, 43, 44], "system": [0, 16, 21, 22, 25, 26, 27, 28, 29, 30, 33, 37, 38, 39, 40, 42, 43, 44], "t": [0, 1, 4, 7, 13, 14, 16, 20, 22, 24, 25, 26, 27, 29, 31, 32, 34, 35, 36, 38, 39, 40, 41, 42, 43], "tab": [0, 12, 26, 35], "tabl": [0, 22, 27, 37, 38, 39], "tag": [1, 4, 6, 22, 25, 26, 36, 39, 41, 43], "tagsread": 8, "take": [0, 13, 16, 28, 40, 41, 44], "takeawai": 43, "taken": [0, 7, 12, 14, 41, 42], "talk": [2, 13, 18, 22], "tar": [24, 27, 41, 42], "tarbal": [27, 41], "target": [1, 7, 36], "task": [7, 16, 20, 22, 25, 26, 31, 32, 36, 40, 44], "taxpasta": 43, "teach": 42, "team": [9, 20, 24, 26, 29, 33, 36, 40, 41, 42], "technic": [1, 11, 14, 17, 34, 36, 41, 43], "tell": [13, 20, 25, 26, 27, 34, 36, 39, 41, 42, 43], "temperatur": [20, 32], "temperature_convert": 32, "templat": [5, 13, 36, 38], "tempor": 20, "ten": 43, "tend": 13, "tener": 1, "term": [9, 13, 14, 17, 26, 27, 34, 36, 43], "termin": [0, 38, 39, 41, 44], "terminologi": 24, "terra": 9, "test": [0, 1, 5, 7, 11, 15, 16, 22, 23, 24, 25, 26, 27, 29, 35, 36, 37, 38, 40, 42, 43, 44], "test_add_numb": 34, "test_attribut": 27, "test_celsius_to_fahrenheit": 32, "test_client": 27, "test_mamba": 31, "test_modul": [31, 44], "testm": 39, "testpypi": 26, "text": [0, 3, 9, 11, 13, 15, 16, 29, 35, 36, 38, 39, 41], "than": [13, 14, 15, 20, 21, 22, 25, 26, 28, 31, 34, 39, 41, 42, 43], "thei": [0, 1, 4, 6, 7, 8, 9, 11, 13, 14, 15, 17, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 40, 41, 42, 43], "theirs": 9, "them": [0, 1, 7, 13, 14, 16, 20, 22, 25, 26, 28, 32, 36, 39, 40, 41, 42, 43], "theme": [6, 25, 40, 42], "theori": 27, "therefor": 31, "thi": [0, 1, 2, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 42, 43, 44], "thing": [7, 8, 10, 11, 19, 20, 26, 27, 34, 35, 36, 38, 39, 40, 41, 42, 43], "think": [13, 20, 22, 23, 25, 28, 31, 32, 38, 40, 41, 43], "third": [8, 20], "thorough": 21, "those": [0, 1, 7, 13, 15, 16, 17, 20, 22, 23, 24, 25, 26, 27, 29, 34, 36, 40, 41, 43], "thought": [11, 29], "thousand": [28, 40, 43], "three": [3, 7, 21, 22, 29, 30, 31, 35], "through": [0, 1, 7, 13, 14, 18, 19, 25, 26, 27, 31, 35, 36, 38, 39, 40, 41, 42, 43, 44], "throughout": [20, 29, 37, 40], "thu": [3, 14, 16, 22, 24, 26, 27, 29, 34, 35, 40, 41, 42], "thumb": 7, "thumbnail": 15, "ti": 31, "tier": 4, "time": [1, 6, 8, 11, 14, 15, 16, 20, 21, 24, 25, 26, 28, 29, 32, 34, 35, 36, 38, 40, 41, 43, 44], "timelin": 8, "timestamp": 8, "timestampread": 8, "tip": 0, "titl": [0, 41], "todo": [0, 1, 36], "togeth": [32, 34, 39, 41], "toggl": 31, "token": [14, 36, 37], "toll": 28, "tom": [25, 43], "toml": [0, 8, 19, 20, 21, 23, 26, 27, 28, 31, 35, 41, 42], "tone": 1, "too": [0, 20, 22], "took": 42, "tool": [0, 1, 3, 5, 6, 9, 13, 14, 15, 16, 17, 19, 21, 22, 23, 24, 25, 27, 28, 30, 35, 36, 39, 40, 41, 43], "toolbox": [20, 40], "top": [0, 3, 8, 14, 15, 20, 35, 39, 42, 43], "top_level": 27, "topic": [13, 25, 27, 39, 43], "touch": 35, "toward": [14, 39], "tox": [22, 26, 31, 40], "track": [8, 26, 29, 36, 40, 41], "tracker": [8, 43], "traction": 20, "tradition": 25, "trail": 20, "transit": 44, "translat": [0, 25, 27, 41], "transpar": [8, 40], "treat": 39, "tricki": 40, "trigger": [1, 20, 29, 33, 40], "troubl": 41, "troubleshoot": [29, 41], "true": [13, 16, 32, 38], "trust": [8, 36], "truth": 29, "try": [0, 6, 13, 14, 23, 24, 31, 36, 39, 41, 42, 43], "turn": [4, 21, 29, 42], "tutori": [1, 7, 16, 17, 18, 21, 23, 24, 25, 28, 32, 35, 36, 38, 39, 41, 42, 43, 44], "twine": [22, 26], "twitter": 6, "two": [1, 4, 15, 16, 17, 22, 24, 25, 27, 28, 34, 38, 39, 41, 42, 43], "two2iqr3": 42, "twofa": 42, "txt": [7, 22, 25, 27, 28, 39], "type": [10, 11, 15, 17, 18, 19, 20, 21, 22, 24, 26, 29, 30, 35, 39, 40, 41, 42, 43], "typic": [1, 8, 20, 32, 34], "typo": [0, 1], "tzdata": 42, "u": [22, 23, 26, 40, 43], "ubuntu": 33, "un": 1, "una": 1, "unapologet": 20, "unbuilt": [27, 42], "uncom": 39, "under": [13, 40], "underscor": 39, "understand": [1, 7, 8, 13, 16, 19, 20, 25, 26, 27, 28, 29, 31, 34, 35, 36, 39, 40, 41, 43], "undo": 40, "undocu": 26, "unexpect": 34, "unexpectedli": [31, 40], "unexplain": 34, "unhealthi": 9, "unifi": 26, "uniqu": [26, 31, 42], "unit": [27, 30, 33], "univers": 38, "unknown": 39, "unless": [1, 13, 33], "unlik": [24, 28, 31, 41], "unnecessari": 44, "unpack": 27, "unquot": 22, "unsur": [0, 13, 35], "until": [1, 26, 41], "untransl": 1, "unus": 20, "unzip": 27, "up": [2, 7, 8, 11, 14, 16, 21, 22, 26, 28, 29, 30, 31, 32, 33, 38, 40, 42], "upcom": [26, 35, 39, 40], "updat": [0, 1, 7, 8, 9, 11, 19, 20, 24, 25, 26, 35, 36, 37, 39, 40, 41, 42], "upgrad": [8, 33], "upload": [22, 26, 27, 28, 31, 33, 40], "upon": [5, 22, 23, 24, 26, 28, 29, 31, 40, 43], "upper": [26, 43], "uri": 37, "url": [0, 6, 13, 39, 42], "us": [0, 1, 2, 3, 4, 6, 7, 9, 11, 12, 17, 19, 21, 23, 24, 27, 30, 32, 33, 34, 36, 38, 39, 41], "usabl": 19, "user": [4, 5, 8, 9, 10, 11, 13, 14, 15, 16, 19, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 42, 43], "usernam": [0, 20, 27, 42], "usual": [1, 16, 24], "util": 27, "v": [28, 39, 43], "v0": [42, 43], "v1": 8, "v2": 8, "v3": 33, "v4": [20, 33], "valid": [25, 42, 43], "valor": 1, "valu": [1, 16, 20, 25, 27, 29, 32, 34, 38, 39, 43], "valuabl": [7, 8, 11, 20, 39, 40], "var": 41, "vari": [8, 14], "variabl": [20, 29, 37, 39, 40], "variant": 0, "varieti": 14, "variou": [2, 23, 24, 30, 31, 33, 34, 40, 41, 43], "vc": 29, "ve": [14, 22, 26, 35, 38, 40, 41, 43], "vece": 1, "vendor": 41, "venv": [0, 1, 39, 42], "venv_backend": 31, "verbatim": 0, "verd": [5, 10, 16], "veri": [1, 27, 29, 41], "verifi": [0, 32, 44], "versatil": 31, "version": [0, 1, 4, 7, 13, 16, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 33, 35, 36, 38, 39, 41, 42], "vet": [23, 36], "vez": 1, "via": [15, 26, 29, 41, 42, 44], "vibrant": 19, "view": [1, 4, 5, 7, 16, 19, 22, 25, 26, 35, 37, 39, 42], "vignett": 17, "violat": 13, "virtual": [1, 26, 31, 39, 42], "virtualenv": [31, 42], "visibl": [6, 35, 43], "visit": [13, 35], "visual": [1, 15, 20, 40], "vocal": 40, "volunt": 41, "vscode": [20, 26], "vv": 41, "w": [20, 25], "wa": [1, 3, 8, 20, 22, 24, 25, 27, 29, 34, 41, 42, 43], "wai": [0, 1, 2, 4, 13, 14, 17, 20, 23, 25, 26, 27, 29, 31, 32, 34, 36, 39, 40, 42, 43], "wait": [1, 41], "walk": [7, 18, 25, 35, 39, 40, 41, 44], "want": [0, 1, 3, 4, 5, 6, 9, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 27, 28, 29, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 43, 44], "warn": [0, 1, 20, 25, 29, 44], "wasser": [38, 39], "watch": 19, "water": 32, "we": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 31, 32, 35, 36, 38, 40, 41, 42, 43, 44], "web": [1, 4, 6, 26, 42], "websit": [1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 17, 25, 27, 28, 35, 39, 41, 42, 43], "weekli": 20, "welcom": [0, 5, 7, 10, 19, 38, 39, 40], "well": [1, 8, 11, 12, 13, 14, 15, 16, 17, 22, 23, 24, 26, 29, 32, 34], "were": [24, 26], "what": [9, 15, 17, 19, 20, 26, 29, 32, 37, 42], "whatev": [5, 27, 31, 33], "wheel": [19, 24, 25, 26, 37, 39, 40, 41], "when": [2, 6, 8, 11, 12, 14, 16, 17, 20, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 34, 35, 36, 38, 39, 41, 42], "whenev": [0, 17, 22], "where": [0, 1, 4, 8, 15, 17, 20, 23, 25, 26, 29, 31, 32, 34, 39, 41, 42, 43, 44], "wherea": [24, 27, 40, 43], "wherev": [41, 43], "whether": [13, 20, 22, 25, 28, 36, 40], "which": [0, 4, 5, 7, 9, 13, 14, 16, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 35, 36, 39, 40, 41, 42, 43], "while": [0, 3, 5, 6, 8, 11, 13, 20, 21, 24, 25, 26, 27, 28, 29, 33, 36, 38, 39, 40, 42, 43], "whitespac": 20, "whl": [24, 26, 42], "who": [1, 7, 8, 17, 18, 23, 24, 25, 27, 28, 36, 41, 42, 43], "whole": [0, 32], "whose": 27, "why": [0, 22, 23, 24, 30, 35], "wide": [1, 3, 8, 16, 19, 29, 42], "wiki": 13, "willing": 41, "window": [0, 20, 22, 27, 31, 33, 37, 38, 39, 41], "winner": 26, "wish": [4, 7, 11, 20, 21, 25, 26, 27, 31, 33, 35, 39, 41, 42, 43], "within": [0, 14, 16, 17, 20, 22, 23, 24, 25, 28, 29, 31, 35, 36, 39, 40, 43], "without": [1, 13, 20, 22, 26, 27, 31, 33, 34, 39, 40, 42], "won": [7, 20, 26, 28, 31, 34, 36, 38], "wonder": [24, 34, 40], "word": [13, 25, 29, 39, 42], "work": [0, 4, 11, 13, 15, 16, 19, 20, 21, 22, 24, 25, 26, 28, 29, 31, 32, 33, 34, 36, 39, 40, 42, 43, 44], "workflow": [1, 7, 11, 16, 17, 19, 21, 22, 23, 27, 28, 29, 31, 32, 33, 36, 40], "world": 42, "worri": [20, 27, 31, 32, 41, 42, 43], "worth": 28, "worthi": 39, "would": [0, 1, 13, 20, 28, 29, 31, 32, 34, 36, 39, 40], "wrap": [14, 23, 24, 26], "wrapper": 14, "write": [0, 1, 2, 3, 5, 7, 8, 14, 15, 16, 19, 20, 26, 28, 29, 30, 31, 32, 40], "written": [0, 1, 5, 17, 21, 22, 23, 24, 25, 26, 34, 40, 41, 43], "wrong": 29, "wrote": 43, "www": [1, 13, 43], "x": [0, 25, 26, 27, 29, 41, 43], "x64": 38, "xarrai": [28, 31], "xclim": 25, "xml": [6, 8], "xmltodict": 8, "y": 1, "yaml": [4, 20, 22, 24, 41], "ye": [26, 35], "year": [3, 19, 22, 24, 25, 32, 43], "yearly_mean": 32, "yet": [0, 1, 35, 36, 39, 42, 43], "yield": 24, "yml": [27, 33], "you": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14, 16, 17, 18, 19, 20, 21, 27, 28, 30, 32, 33, 34, 36, 37, 38, 44], "youpackagenameher": 42, "your": [5, 9, 19, 21, 23, 27, 32, 33, 44], "youremail": 39, "yourpackag": 41, "yourself": [0, 4, 9, 28, 40], "yourusernam": 39, "zenodo": [13, 28, 36], "zip": [24, 27], "zsh": 39}, "titles": ["Contributing to the Python Packaging Guide", "Translation Guide for the Python Packaging Guide", "Tools to Build and Host your Documentation", "Documentation syntax: markdown vs. myST vs. rst syntax to create your docs", "How to publish your Python package documentation online", "Using Sphinx to Build Python Package Documentation", "Optimizing your documentation so search engines (and other users) find it", "Documentation for your Open Source Python Package", "CHANGELOG.md Guide", "The CODE_OF_CONDUCT file - Python Packaging", "Contributing File in your Python Open Source Package", "What the development guide for your Python package should contain", "Documentation Files That Should be in your Python Package Repository", "License files for scientific Python open source software", "README File Guidelines and Resources", "Create tutorials in your Python package documentation", "Document the code in your package\u2019s API using docstrings", "Create User Facing Documentation for your Python Package", "Writing user-facing documentation for your Python package", "pyOpenSci Python Package Guide", "Python Package Code Style, Format and Linters", "Complex Python package builds", "Python Package Dependencies", "Python Package Structure", "Publishing Your Package In A Community Repository: PyPI or Anaconda.org", "Use a pyproject.toml file for your package configuration & metadata", "Python Packaging Tools", "Learn about Building a Python Package", "Python Package Structure for Scientific Python Projects", "Creating New Versions of Your Python Package", "Tests and data for your Python package", "Run Python package tests", "Test Types for Python packages", "Run tests with Continuous Integration", "Write tests for your Python package", "Add a LICENSE & CODE_OF_CONDUCT to your Python package", "Add a README file to your Python package", "Command Line Reference Guide", "Get to Know Hatch", "Make your Python code installable", "Python packaging 101", "Publish your Python package that is on PyPI to conda-forge", "Publish your Python package to PyPI", "Make your Python package PyPI ready - pyproject.toml", "Using Hatch to Migrate setup.py to a pyproject.toml"], "titleterms": {"": [7, 14, 16, 23, 24, 38, 40, 42], "0": 36, "1": [7, 29, 36, 38, 39, 41, 42, 43], "101": 40, "2": [7, 29, 36, 38, 39, 41, 42, 43], "2fa": 42, "3": [29, 36, 38, 39, 41, 42, 43], "3b": 41, "4": [29, 36, 38, 39, 41, 42, 43], "5": [36, 39, 43], "6": [36, 39, 43], "7": 36, "8": 36, "A": [14, 19, 22, 24, 29], "For": 22, "If": [24, 42], "In": 24, "Of": 14, "That": 12, "The": [1, 9, 28, 36, 39, 40, 42], "__init__": 39, "about": [13, 19, 25, 26, 27, 29, 39, 41, 42, 43], "accommod": 24, "account": 42, "across": 31, "action": 33, "ad": [16, 22, 41], "add": [22, 25, 35, 36, 39, 41, 43], "addit": [0, 14, 22, 24, 35, 36], "adjust": 39, "advanc": 25, "after": 44, "all": 43, "also": 40, "am": 1, "an": [13, 16, 26, 27, 35, 39, 40], "anaconda": 24, "analyt": 6, "ani": [14, 36], "annex": 0, "api": 16, "applic": 20, "approach": 0, "ar": [1, 13, 23, 40], "archiv": 27, "ask": 1, "authent": 42, "author": 43, "autom": 31, "avoid": 29, "awai": [20, 24, 25], "back": [26, 29], "backend": 21, "badg": [14, 36], "bare": 39, "base": [29, 42], "basic": [7, 39], "befor": [0, 40, 44], "below": 42, "benefit": [15, 25, 28], "best": 16, "better": 16, "bewar": 16, "black": 20, "both": 24, "branch": 0, "brief": [14, 24, 39], "bubbl": [35, 36, 41, 43], "bug": 41, "build": [0, 1, 2, 5, 15, 21, 25, 26, 27, 29, 42], "bump": 29, "c": 26, "can": [1, 5, 13, 22, 24, 26, 29], "case": 34, "caution": 43, "cd": 0, "cfg": 27, "challeng": [15, 26, 28], "chang": [0, 1], "changelog": 8, "channel": 24, "check": [20, 38], "checklist": 41, "choos": [13, 26], "chose": [13, 26], "ci": [0, 20, 33, 41], "citat": [13, 14, 36], "class": [35, 36, 41, 42, 43], "classifi": [39, 43], "clean": 40, "clone": [0, 41], "close": [13, 38], "code": [0, 13, 14, 16, 20, 35, 36, 39, 40], "code_of_conduct": [9, 35], "combin": 22, "command": 37, "commit": [0, 20], "commonli": 5, "commun": [14, 19, 24, 36], "compar": 32, "comparison": 38, "complet": 43, "complex": [21, 25], "compon": 17, "comput": 0, "con": 29, "conda": [22, 24, 31, 40, 41, 43], "conduct": [14, 35], "config": 38, "configur": [25, 38], "conflict": 24, "congratul": [39, 41, 42], "consid": 40, "contain": [10, 11, 14], "content": 23, "continu": [14, 33, 40], "contribut": [0, 1, 10, 14, 19], "contributor": [7, 40], "control": [29, 40], "copyleft": 13, "core": [17, 22, 28], "correctli": 38, "cover": 39, "coverag": 14, "creat": [0, 3, 15, 17, 19, 22, 27, 29, 36, 39, 40, 41, 42], "critic": 7, "current": 14, "custom": 5, "data": [28, 30], "dataset": 28, "declar": 22, "demonstr": 14, "depend": [0, 22, 24, 25, 26, 43], "deploy": 40, "descript": [14, 36, 43], "determin": 13, "develop": [0, 11, 23, 37, 42], "directori": [35, 39, 44], "discov": 28, "distribut": [27, 42], "do": [1, 8, 22, 25, 26, 28, 34, 39], "doc": [3, 4, 15, 22], "docstr": 16, "doctest": 16, "document": [0, 1, 2, 3, 4, 5, 6, 7, 12, 14, 15, 16, 17, 18, 19, 40], "doe": [8, 14, 16, 22, 28, 36, 39, 40], "don": 28, "dr": 0, "e": 39, "easi": 14, "easier": 20, "ecosystem": [26, 35], "edg": 34, "edit": [0, 1, 38], "element": [7, 17, 40], "email": [38, 43], "end": [26, 29, 32, 42], "engin": 6, "english": 1, "environ": [0, 1, 22, 31, 37, 39, 40, 42], "evolut": 24, "exampl": [0, 9, 10, 13, 16, 20, 22, 25, 26, 27, 28, 29, 33, 34, 40, 43], "expect": [0, 27, 40], "extens": [5, 21, 26], "fa": [35, 36, 41, 42, 43], "face": [17, 18], "factor": 42, "failur": 41, "faq": 1, "favorit": 20, "featur": [26, 38], "feedstock": 41, "field": 25, "file": [0, 1, 9, 10, 12, 13, 14, 22, 25, 35, 36, 38, 39, 42, 43], "find": 6, "finish": 36, "first": 39, "fit": 22, "fix": 41, "flake8": 20, "flat": 28, "flit": [26, 42], "follow": [13, 42], "footnot": [35, 39, 41, 42], "forg": [24, 40, 41, 43], "fork": [0, 41], "format": [1, 16, 20, 25, 27, 43], "formatt": 20, "four": 17, "framework": 31, "frequent": 1, "from": [0, 13, 22, 39, 42], "front": 26, "frontend": 21, "fulli": 36, "function": [16, 32, 36], "galleri": 15, "gener": [5, 20], "get": [0, 1, 36, 38, 44], "git": [20, 29, 40], "github": [0, 4, 22, 27, 33, 39, 40], "gitlab": [22, 40], "good": [14, 17], "googl": 6, "gradual": 16, "grayskul": 41, "group": 22, "guid": [0, 1, 8, 11, 14, 19, 23, 37, 42, 44], "guidebook": 19, "guidelin": [13, 14, 23], "ha": [1, 40], "hand": [35, 36, 41, 43], "handl": 1, "happen": [0, 1, 25, 27, 43], "hatch": [26, 29, 38, 39, 42, 44], "hatch_vc": 29, "hatchl": [25, 29, 43], "have": [41, 42], "head": 19, "help": [0, 1], "here": [23, 26], "hint": 16, "histori": 24, "home": 41, "hook": 20, "host": 2, "how": [0, 1, 4, 8, 13, 14, 16, 20, 22, 23, 24, 25, 27, 28, 34, 35, 40, 41, 43], "i": [0, 1, 4, 7, 8, 11, 13, 16, 19, 22, 23, 24, 25, 27, 28, 31, 34, 35, 36, 39, 40, 41, 42, 43, 44], "imag": 1, "import": [1, 8, 11, 13, 25, 28, 39], "includ": [8, 25, 28], "incorrect": 43, "increment": 29, "inform": [14, 36], "infrastructur": 40, "init": 44, "instal": [0, 14, 22, 36, 38, 39, 40, 41, 42], "instruct": [14, 36], "integr": [14, 32, 33, 40], "interest": 1, "introduct": 8, "isort": 20, "issu": 40, "jupyt": 15, "just": 40, "kei": 29, "know": [1, 34, 38, 44], "land": 17, "languag": [1, 21], "layout": 28, "learn": [23, 26, 27, 35, 36, 40, 41, 42, 43, 44], "lesson": 39, "licens": [13, 35, 43], "life": 20, "like": [8, 16, 28, 29, 42], "line": [1, 37], "link": [1, 14], "lint": 20, "linter": 20, "list": 1, "live": 35, "ll": 31, "local": [0, 1, 20, 39], "long": 1, "look": [7, 8, 28, 39, 40], "m": [22, 39], "magic": [41, 42], "mai": 22, "maintain": [8, 24, 40, 41, 43], "make": [0, 13, 20, 39, 40, 43], "mamba": 31, "manag": [24, 29], "manual": [29, 35, 42], "markdown": [0, 3], "matplotlib": 40, "md": [8, 10, 14, 36], "metadata": [25, 27, 39, 43], "method": 16, "might": 26, "migrat": [25, 44], "minimum": 39, "mix": 21, "modifi": 39, "modul": [28, 39], "more": [24, 26, 40, 42, 43], "most": 28, "much": [14, 16], "my": 1, "myst": 3, "name": [14, 36, 38, 39, 43], "nbsphinx": 15, "need": [1, 9, 39], "never": 28, "new": [0, 1, 19, 29, 39, 43], "next": [7, 38, 40, 43], "non": 26, "note": [22, 29, 39, 44], "notebook": 15, "now": 40, "nox": 31, "number": 29, "numpi": 16, "object": [35, 36, 40, 41, 42, 43, 44], "offer": 29, "onlin": 4, "open": [7, 10, 13, 17, 38], "opengraph": 6, "oper": 31, "optim": 6, "option": [22, 25, 39, 42, 43], "org": 24, "origin": 1, "other": [6, 21, 22, 29, 31, 38, 40], "our": 42, "out": 39, "outlin": 13, "overview": [1, 35, 39], "packag": [0, 1, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 41, 42, 43], "page": [4, 17], "pdm": [26, 29], "peer": 28, "pen": 41, "permiss": 13, "pin": [26, 43], "pip": [22, 24, 27, 39], "poetri": [26, 42], "possibl": [13, 36], "potenti": 7, "pr": 1, "pre": 20, "prepar": 1, "prerequisit": 44, "previous": 39, "priorit": 28, "pro": 29, "process": [0, 1], "project": [21, 25, 27, 28, 39, 40, 43], "provid": 36, "public": [41, 42], "publish": [4, 24, 37, 40, 41, 42, 43], "pull": [0, 33, 41], "pure": [21, 26], "put": [35, 43], "py": [25, 27, 39, 44], "pyopensci": [7, 19, 23, 28, 40], "pyospackag": 39, "pypi": [24, 27, 40, 41, 42, 43], "pyproject": [22, 25, 29, 39, 43, 44], "pytest": 31, "python": [0, 1, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 39, 40, 41, 42, 43], "question": 1, "read": [4, 22], "readabl": 40, "readi": [1, 43], "readm": [14, 36, 43], "recip": 41, "recommend": [13, 23], "recurs": 25, "refer": [13, 37], "referenc": 0, "regular": 41, "relat": [16, 40], "releas": [1, 8, 29], "repositori": [0, 12, 24, 41], "request": [0, 33, 41], "requir": [14, 22, 23, 25, 28, 43], "research": 40, "resourc": [0, 14, 22, 24, 35], "reus": 13, "review": [0, 1, 7, 23, 26, 28], "rst": 3, "ruff": 20, "rule": 29, "run": [15, 16, 20, 31, 33, 38], "sampl": 44, "scientif": [13, 28, 35], "scientist": 19, "scipi": 13, "scm": 29, "scope": 40, "sdist": [27, 42], "search": 6, "section": [7, 8, 14, 36, 41], "see": [22, 31], "semant": [8, 29], "semver": 29, "seri": 19, "set": [1, 20, 22, 39], "setup": [14, 25, 27, 29, 36, 37, 39, 42, 44], "setuptool": [25, 26, 29], "setuptools_scm": 29, "shell": 22, "short": 14, "should": [10, 11, 12, 14, 31, 35, 40], "show": 38, "simplifi": 26, "singl": 1, "site": 5, "sitemap": 6, "snippet": 36, "so": 6, "softwar": 13, "solid": [35, 36, 41, 42, 43], "sourc": [7, 10, 13, 17, 27, 28], "sparkl": [41, 42], "specif": [28, 42], "specifi": 43, "sphinx": [5, 6, 15], "sphinxext": 6, "squar": 41, "src": 28, "stage": 41, "start": [1, 36], "static": 5, "step": [26, 36, 38, 39, 41, 42, 43, 44], "still": 25, "store": [13, 22, 40], "string": 1, "structur": [0, 23, 28, 39], "style": [16, 20], "styler": 20, "submit": [0, 1, 24, 41], "success": 7, "suggest": [23, 26], "suit": 28, "summari": [20, 26], "support": [22, 26, 40], "sure": 13, "syntax": 3, "system": 31, "t": 28, "tabl": [25, 26, 31, 43], "tag": 29, "take": [20, 24, 25], "takewai": 29, "templat": 41, "test": [14, 19, 28, 30, 31, 32, 33, 34, 39, 41], "testpypi": 42, "text": 1, "than": 40, "theme": 5, "thi": [7, 19, 23, 39, 40], "thing": 14, "three": [16, 32], "ticket": 40, "time": [39, 42], "tip": 41, "titl": 36, "tl": 0, "todo": [7, 19, 22, 25, 31, 32, 33, 38, 39, 40, 42, 43], "togeth": 43, "token": 42, "toml": [22, 25, 29, 38, 39, 43, 44], "too": [1, 14, 16], "tool": [2, 7, 20, 26, 29, 31, 38, 42], "top": 36, "tracker": 40, "translat": 1, "tree": 44, "trust": 42, "turn": 40, "tutori": [14, 15, 19, 40], "two": [0, 7], "type": [7, 16, 32, 34], "understand": [14, 22], "unit": 32, "unreleas": 8, "up": [1, 20, 35, 36, 39, 41, 43], "updat": [29, 38, 43], "upload": 42, "url": [41, 43], "us": [5, 8, 13, 14, 15, 16, 20, 22, 25, 26, 28, 29, 31, 35, 40, 42, 43, 44], "usabl": 17, "user": [6, 7, 17, 18, 22, 24, 34, 40], "v": [3, 4, 20, 21, 22, 25, 26, 27, 29, 40, 42], "valu": 42, "ve": 42, "venv": 31, "version": [8, 14, 29, 31, 37, 40, 43], "via": 0, "virtual": 0, "wai": [22, 35], "wand": [41, 42], "want": [26, 42], "we": [16, 26, 39], "websit": 0, "well": 40, "what": [0, 1, 4, 7, 8, 10, 11, 13, 14, 16, 22, 23, 24, 25, 27, 28, 31, 34, 35, 36, 38, 39, 40, 41, 43, 44], "wheel": [27, 28, 42], "when": [0, 1, 13, 15, 25, 40, 43], "where": [13, 19, 22, 24, 35], "which": 1, "whl": 27, "who": [19, 40], "why": [8, 9, 11, 13, 16, 26, 28, 34, 39, 40, 41, 42], "wild": 31, "work": [1, 41], "workflow": [20, 26, 42], "wrap": [35, 36, 41, 43], "write": [17, 18, 34], "xclim": 27, "yai": 40, "yml": 22, "you": [0, 9, 13, 15, 22, 23, 24, 25, 26, 29, 31, 35, 39, 40, 41, 42, 43], "your": [0, 1, 2, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 24, 25, 26, 28, 29, 30, 31, 34, 35, 36, 38, 39, 40, 41, 42, 43], "zsh": 22}}) \ No newline at end of file diff --git a/tests/index.html b/tests/index.html index 689cd6ca..b03e9f2a 100644 --- a/tests/index.html +++ b/tests/index.html @@ -11,12 +11,12 @@ - + - + Tests and data for your Python package — Python Packaging Guide @@ -473,12 +473,12 @@
    -

    Tests and data for your Python package#

    +

    Tests and data for your Python package#

    Tests are an important part of your Python package because they provide a set of checks that ensure that your package is functioning how you expect it to.

    -

    In this section you will learn more about the importance of writing -tests for your Python package and how you can setup infrastructure +

    In this section, you will learn more about the importance of writing +tests for your Python package and how you can set up infrastructure to run your tests both locally and on GitHub.

    diff --git a/tutorials/intro.html b/tutorials/intro.html index fe455f26..9c4aca4e 100644 --- a/tutorials/intro.html +++ b/tutorials/intro.html @@ -490,7 +490,7 @@
    -

    Python packaging 101#

    +

    Python packaging 101#

    A start to finish beginner-friendly tutorial

    Welcome to the pyOpenSci Python packaging tutorial series. The lessons on the upcoming pages walk you through the core steps needed to @@ -534,7 +534,7 @@

    Who are these tutorials for? -

    What is a Python package?#

    +

    What is a Python package?#

    At a high level, you can think about a Python package as a toolbox that you can use to perform various tasks.

    A Python package is basically a directory with a specific diff --git a/tutorials/setup-py-to-pyproject-toml.html b/tutorials/setup-py-to-pyproject-toml.html index 1441937f..809e2c51 100644 --- a/tutorials/setup-py-to-pyproject-toml.html +++ b/tutorials/setup-py-to-pyproject-toml.html @@ -64,7 +64,7 @@ - + @@ -612,7 +612,7 @@

    Step-by-Step Guide

    next

    -

    Python package structure information

    +

    Python Package Structure