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.
+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):
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? -
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 ProjectsREADME.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
+
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/
anddocs/
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.
Benefits of using the flat layout in your Python package
Benefits of using the flat layout in your Python package
Benefits of using the flat layout in your Python package
+- What is the Python package source layout?
- The src/ layout and testing
-- About the flat Python package layout
+- What is the flat Python package layout?
- What does the flat layout structure look like?
diff --git a/package-structure-code/python-package-versions.html b/package-structure-code/python-package-versions.html
index 47d0d2d5..acfd536a 100644
--- a/package-structure-code/python-package-versions.html
+++ b/package-structure-code/python-package-versions.html
@@ -464,7 +464,7 @@
-
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#
+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.
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 @@