Rainmaker Table lights

This commit is contained in:
2025-06-28 04:44:02 -04:00
parent c21671b950
commit 6395dca4d4
867 changed files with 41566 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
Metadata-Version: 2.4
Name: virtualenv
Version: 20.28.1
Summary: Virtual Python Environment builder
Project-URL: Documentation, https://virtualenv.pypa.io
Project-URL: Homepage, https://github.com/pypa/virtualenv
Project-URL: Source, https://github.com/pypa/virtualenv
Project-URL: Tracker, https://github.com/pypa/virtualenv/issues
Maintainer-email: Bernat Gabor <gaborjbernat@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: environments,isolated,virtual
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Requires-Dist: distlib<1,>=0.3.7
Requires-Dist: filelock<4,>=3.12.2
Requires-Dist: importlib-metadata>=6.6; python_version < '3.8'
Requires-Dist: platformdirs<5,>=3.9.1
Provides-Extra: docs
Requires-Dist: furo>=2023.7.26; extra == 'docs'
Requires-Dist: proselint>=0.13; extra == 'docs'
Requires-Dist: sphinx!=7.3,>=7.1.2; extra == 'docs'
Requires-Dist: sphinx-argparse>=0.4; extra == 'docs'
Requires-Dist: sphinxcontrib-towncrier>=0.2.1a0; extra == 'docs'
Requires-Dist: towncrier>=23.6; extra == 'docs'
Provides-Extra: test
Requires-Dist: covdefaults>=2.3; extra == 'test'
Requires-Dist: coverage-enable-subprocess>=1; extra == 'test'
Requires-Dist: coverage>=7.2.7; extra == 'test'
Requires-Dist: flaky>=3.7; extra == 'test'
Requires-Dist: packaging>=23.1; extra == 'test'
Requires-Dist: pytest-env>=0.8.2; extra == 'test'
Requires-Dist: pytest-freezer>=0.4.8; (platform_python_implementation == 'PyPy' or (platform_python_implementation == 'CPython' and sys_platform == 'win32' and python_version >= '3.13')) and extra == 'test'
Requires-Dist: pytest-mock>=3.11.1; extra == 'test'
Requires-Dist: pytest-randomly>=3.12; extra == 'test'
Requires-Dist: pytest-timeout>=2.1; extra == 'test'
Requires-Dist: pytest>=7.4; extra == 'test'
Requires-Dist: setuptools>=68; extra == 'test'
Requires-Dist: time-machine>=2.10; (platform_python_implementation == 'CPython') and extra == 'test'
Description-Content-Type: text/markdown
# virtualenv
[![PyPI](https://img.shields.io/pypi/v/virtualenv?style=flat-square)](https://pypi.org/project/virtualenv)
[![PyPI - Implementation](https://img.shields.io/pypi/implementation/virtualenv?style=flat-square)](https://pypi.org/project/virtualenv)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/virtualenv?style=flat-square)](https://pypi.org/project/virtualenv)
[![Documentation](https://readthedocs.org/projects/virtualenv/badge/?version=latest&style=flat-square)](http://virtualenv.pypa.io)
[![Discord](https://img.shields.io/discord/803025117553754132)](https://discord.gg/pypa)
[![Downloads](https://static.pepy.tech/badge/virtualenv/month)](https://pepy.tech/project/virtualenv)
[![PyPI - License](https://img.shields.io/pypi/l/virtualenv?style=flat-square)](https://opensource.org/licenses/MIT)
[![check](https://github.com/pypa/virtualenv/actions/workflows/check.yaml/badge.svg)](https://github.com/pypa/virtualenv/actions/workflows/check.yaml)
A tool for creating isolated `virtual` python environments.
- [Installation](https://virtualenv.pypa.io/en/latest/installation.html)
- [Documentation](https://virtualenv.pypa.io)
- [Changelog](https://virtualenv.pypa.io/en/latest/changelog.html)
- [Issues](https://github.com/pypa/virtualenv/issues)
- [PyPI](https://pypi.org/project/virtualenv)
- [Github](https://github.com/pypa/virtualenv)
## Code of Conduct
Everyone interacting in the virtualenv project's codebases, issue trackers, chat rooms, and mailing lists is expected to
follow the [PSF Code of Conduct](https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md).

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta name="pypi:repository-version" content="1.0">
<title>Simple index</title>
</head>
<body>
<a href="/pypi/pip/pip-23.3.1-py3-none-any.whl">pip-23.3.1-py3-none-any.whl</a><br/>
</body>
</html>

View File

@@ -0,0 +1,52 @@
Metadata-Version: 2.1
Name: ruamel.yaml.clib
Version: 0.2.8
Summary: C version of reader, parser and emitter for ruamel.yaml derived from libyaml
Home-page: https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree
Author: Anthon van der Neut
Author-email: a.van.der.neut@ruamel.eu
License: MIT
Keywords: yaml 1.2 parser c-library config
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
License-File: LICENSE
ruamel.yaml.clib
================
``ruamel.yaml.clib`` is the C based reader/scanner and emitter for ruamel.yaml
:version: 0.2.7
:updated: 2022-10-19
:documentation: http://yaml.readthedocs.io
:repository: https://sourceforge.net/projects/ruamel-yaml-clib/
:pypi: https://pypi.org/project/ruamel.yaml.clib/
This package was split of from ruamel.yaml, so that ruamel.yaml can be build as
a universal wheel. Apart from the C code seldom changing, and taking a long
time to compile for all platforms, this allows installation of the .so
on Linux systems under /usr/lib64/pythonX.Y (without a .pth file or a ruamel
directory) and the Python code for ruamel.yaml under /usr/lib/pythonX.Y.
.. image:: https://bestpractices.coreinfrastructure.org/projects/1128/badge
:target: https://bestpractices.coreinfrastructure.org/projects/1128
.. image:: https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree/_doc/_static/license.svg?format=raw
:target: https://opensource.org/licenses/MIT
This release in loving memory of Johanna Clasina van der Neut-Bandel [1922-10-19 - 2015-11-21]

View File

@@ -0,0 +1,30 @@
Metadata-Version: 2.1
Name: pre_commit
Version: 4.0.1
Summary: A framework for managing and maintaining multi-language pre-commit hooks.
Home-page: https://github.com/pre-commit/pre-commit
Author: Anthony Sottile
Author-email: asottile@umich.edu
License: MIT
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cfgv>=2.0.0
Requires-Dist: identify>=1.0.0
Requires-Dist: nodeenv>=0.11.1
Requires-Dist: pyyaml>=5.1
Requires-Dist: virtualenv>=20.10.0
[![build status](https://github.com/pre-commit/pre-commit/actions/workflows/main.yml/badge.svg)](https://github.com/pre-commit/pre-commit/actions/workflows/main.yml)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/pre-commit/pre-commit/main.svg)](https://results.pre-commit.ci/latest/github/pre-commit/pre-commit/main)
## pre-commit
A framework for managing and maintaining multi-language pre-commit hooks.
For more information see: https://pre-commit.com/

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta name="pypi:repository-version" content="1.0">
<title>Simple index</title>
</head>
<body>
<a href="/pypi/jsonref/jsonref-1.1.0-py3-none-any.whl">jsonref-1.1.0-py3-none-any.whl</a><br/>
</body>
</html>

View File

@@ -0,0 +1,62 @@
Metadata-Version: 2.3
Name: pydantic-settings
Version: 2.6.0
Summary: Settings management using Pydantic
Project-URL: Homepage, https://github.com/pydantic/pydantic-settings
Project-URL: Funding, https://github.com/sponsors/samuelcolvin
Project-URL: Source, https://github.com/pydantic/pydantic-settings
Project-URL: Changelog, https://github.com/pydantic/pydantic-settings/releases
Project-URL: Documentation, https://docs.pydantic.dev/dev-v2/concepts/pydantic_settings/
Author-email: Samuel Colvin <s@muelcolvin.com>, Eric Jolibois <em.jolibois@gmail.com>, Hasan Ramezani <hasan.r67@gmail.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Environment :: MacOS X
Classifier: Framework :: Pydantic
Classifier: Framework :: Pydantic :: 2
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Requires-Dist: pydantic>=2.7.0
Requires-Dist: python-dotenv>=0.21.0
Provides-Extra: azure-key-vault
Requires-Dist: azure-identity>=1.16.0; extra == 'azure-key-vault'
Requires-Dist: azure-keyvault-secrets>=4.8.0; extra == 'azure-key-vault'
Provides-Extra: toml
Requires-Dist: tomli>=2.0.1; extra == 'toml'
Provides-Extra: yaml
Requires-Dist: pyyaml>=6.0.1; extra == 'yaml'
Description-Content-Type: text/markdown
# pydantic-settings
[![CI](https://github.com/pydantic/pydantic-settings/workflows/CI/badge.svg?event=push)](https://github.com/pydantic/pydantic-settings/actions?query=event%3Apush+branch%3Amain+workflow%3ACI)
[![Coverage](https://codecov.io/gh/pydantic/pydantic-settings/branch/main/graph/badge.svg)](https://codecov.io/gh/pydantic/pydantic-settings)
[![pypi](https://img.shields.io/pypi/v/pydantic-settings.svg)](https://pypi.python.org/pypi/pydantic-settings)
[![license](https://img.shields.io/github/license/pydantic/pydantic-settings.svg)](https://github.com/pydantic/pydantic-settings/blob/main/LICENSE)
[![downloads](https://static.pepy.tech/badge/pydantic-settings/month)](https://pepy.tech/project/pydantic-settings)
[![versions](https://img.shields.io/pypi/pyversions/pydantic-settings.svg)](https://github.com/pydantic/pydantic-settings)
Settings management using Pydantic, this is the new official home of Pydantic's `BaseSettings`.
This package was kindly donated to the [Pydantic organisation](https://github.com/pydantic) by Daniel Daniels, see [pydantic/pydantic#4492](https://github.com/pydantic/pydantic/pull/4492) for discussion.
For the old "Hipster-orgazmic tool to manage application settings" package, see [version 0.2.5](https://pypi.org/project/pydantic-settings/0.2.5/).
See [documentation](https://docs.pydantic.dev/latest/concepts/pydantic_settings/) for more details.

View File

@@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<meta name="pypi:repository-version" content="1.0">
<title>Simple index</title>
</head>
<body>
<a href="/pypi/pydantic-settings/pydantic_settings-2.4.0-py3-none-any.whl">pydantic_settings-2.4.0-py3-none-any.whl</a><br/>
<a href="/pypi/pydantic-settings/pydantic_settings-2.5.0-py3-none-any.whl">pydantic_settings-2.5.0-py3-none-any.whl</a><br/>
<a href="/pypi/pydantic-settings/pydantic_settings-2.5.2-py3-none-any.whl">pydantic_settings-2.5.2-py3-none-any.whl</a><br/>
<a href="/pypi/pydantic-settings/pydantic_settings-2.6.0-py3-none-any.whl">pydantic_settings-2.6.0-py3-none-any.whl</a><br/>
<a href="/pypi/pydantic-settings/pydantic_settings-2.6.1-py3-none-any.whl">pydantic_settings-2.6.1-py3-none-any.whl</a><br/>
</body>
</html>

View File

@@ -0,0 +1,161 @@
Metadata-Version: 2.4
Name: pydantic_core
Version: 2.27.2
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: Framework :: Pydantic
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS
Classifier: Typing :: Typed
Requires-Dist: typing-extensions >=4.6.0, !=4.7.0
License-File: LICENSE
Summary: Core functionality for Pydantic validation and serialization
Home-Page: https://github.com/pydantic/pydantic-core
Author-email: Samuel Colvin <s@muelcolvin.com>
License: MIT
Requires-Python: >=3.8
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/pydantic/pydantic-core
Project-URL: Funding, https://github.com/sponsors/samuelcolvin
Project-URL: Source, https://github.com/pydantic/pydantic-core
# pydantic-core
[![CI](https://github.com/pydantic/pydantic-core/workflows/ci/badge.svg?event=push)](https://github.com/pydantic/pydantic-core/actions?query=event%3Apush+branch%3Amain+workflow%3Aci)
[![Coverage](https://codecov.io/gh/pydantic/pydantic-core/branch/main/graph/badge.svg)](https://codecov.io/gh/pydantic/pydantic-core)
[![pypi](https://img.shields.io/pypi/v/pydantic-core.svg)](https://pypi.python.org/pypi/pydantic-core)
[![versions](https://img.shields.io/pypi/pyversions/pydantic-core.svg)](https://github.com/pydantic/pydantic-core)
[![license](https://img.shields.io/github/license/pydantic/pydantic-core.svg)](https://github.com/pydantic/pydantic-core/blob/main/LICENSE)
This package provides the core functionality for [pydantic](https://docs.pydantic.dev) validation and serialization.
Pydantic-core is currently around 17x faster than pydantic V1.
See [`tests/benchmarks/`](./tests/benchmarks/) for details.
## Example of direct usage
_NOTE: You should not need to use pydantic-core directly; instead, use pydantic, which in turn uses pydantic-core._
```py
from pydantic_core import SchemaValidator, ValidationError
v = SchemaValidator(
{
'type': 'typed-dict',
'fields': {
'name': {
'type': 'typed-dict-field',
'schema': {
'type': 'str',
},
},
'age': {
'type': 'typed-dict-field',
'schema': {
'type': 'int',
'ge': 18,
},
},
'is_developer': {
'type': 'typed-dict-field',
'schema': {
'type': 'default',
'schema': {'type': 'bool'},
'default': True,
},
},
},
}
)
r1 = v.validate_python({'name': 'Samuel', 'age': 35})
assert r1 == {'name': 'Samuel', 'age': 35, 'is_developer': True}
# pydantic-core can also validate JSON directly
r2 = v.validate_json('{"name": "Samuel", "age": 35}')
assert r1 == r2
try:
v.validate_python({'name': 'Samuel', 'age': 11})
except ValidationError as e:
print(e)
"""
1 validation error for model
age
Input should be greater than or equal to 18
[type=greater_than_equal, context={ge: 18}, input_value=11, input_type=int]
"""
```
## Getting Started
You'll need rust stable [installed](https://rustup.rs/), or rust nightly if you want to generate accurate coverage.
With rust and python 3.8+ installed, compiling pydantic-core should be possible with roughly the following:
```bash
# clone this repo or your fork
git clone git@github.com:pydantic/pydantic-core.git
cd pydantic-core
# create a new virtual env
python3 -m venv env
source env/bin/activate
# install dependencies and install pydantic-core
make install
```
That should be it, the example shown above should now run.
You might find it useful to look at [`python/pydantic_core/_pydantic_core.pyi`](./python/pydantic_core/_pydantic_core.pyi) and
[`python/pydantic_core/core_schema.py`](./python/pydantic_core/core_schema.py) for more information on the python API,
beyond that, [`tests/`](./tests) provide a large number of examples of usage.
If you want to contribute to pydantic-core, you'll want to use some other make commands:
* `make build-dev` to build the package during development
* `make build-prod` to perform an optimised build for benchmarking
* `make test` to run the tests
* `make testcov` to run the tests and generate a coverage report
* `make lint` to run the linter
* `make format` to format python and rust code
* `make` to run `format build-dev lint test`
## Profiling
It's possible to profile the code using the [`flamegraph` utility from `flamegraph-rs`](https://github.com/flamegraph-rs/flamegraph). (Tested on Linux.) You can install this with `cargo install flamegraph`.
Run `make build-profiling` to install a release build with debugging symbols included (needed for profiling).
Once that is built, you can profile pytest benchmarks with (e.g.):
```bash
flamegraph -- pytest tests/benchmarks/test_micro_benchmarks.py -k test_list_of_ints_core_py --benchmark-enable
```
The `flamegraph` command will produce an interactive SVG at `flamegraph.svg`.
## Releasing
1. Bump package version locally. Do not just edit `Cargo.toml` on Github, you need both `Cargo.toml` and `Cargo.lock` to be updated.
2. Make a PR for the version bump and merge it.
3. Go to https://github.com/pydantic/pydantic-core/releases and click "Draft a new release"
4. In the "Choose a tag" dropdown enter the new tag `v<the.new.version>` and select "Create new tag on publish" when the option appears.
5. Enter the release title in the form "v<the.new.version> <YYYY-MM-DD>"
6. Click Generate release notes button
7. Click Publish release
8. Go to https://github.com/pydantic/pydantic-core/actions and ensure that all build for release are done successfully.
9. Go to https://pypi.org/project/pydantic-core/ and ensure that the latest release is published.
10. Done 🎉

View File

@@ -0,0 +1,765 @@
Metadata-Version: 2.1
Name: nodeenv
Version: 1.9.1
Summary: Node.js virtual environment builder
Home-page: https://github.com/ekalinin/nodeenv
Author: Eugene Kalinin
Author-email: e.v.kalinin@gmail.com
License: BSD
Platform: any
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*
License-File: LICENSE
License-File: AUTHORS
Node.js virtual environment
===========================
``nodeenv`` (node.js virtual environment) is a tool to create
isolated node.js environments.
It creates an environment that has its own installation directories,
that doesn't share libraries with other node.js virtual environments.
Also the new environment can be integrated with the environment which was built
by virtualenv_ (python).
If you use nodeenv feel free to add your project on wiki: `Who-Uses-Nodeenv`_.
.. _Who-Uses-Nodeenv: https://github.com/ekalinin/nodeenv/wiki/Who-Uses-Nodeenv
.. image:: https://travis-ci.org/ekalinin/nodeenv.svg?branch=master
:target: https://travis-ci.org/ekalinin/nodeenv
.. contents:: :local:
Install
-------
Global installation
^^^^^^^^^^^^^^^^^^^
You can install nodeenv globally with `easy_install`_::
$ sudo easy_install nodeenv
or with `pip`_::
$ sudo pip install nodeenv
or on Debian using `dpkg`_::
$ ln -s debian-upstream debian
$ dpkg-buildpackage -uc -us -b
$ sudo dpkg -i $(ls -1rt ../nodeenv_*.deb | tail -n1)
.. _dpkg: https://www.debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html
Local installation
^^^^^^^^^^^^^^^^^^
If you're using virtualenv_ then you can install nodeenv via
pip_/easy_install_ inside any virtual environment built with virtualenv::
$ virtualenv env
$ . env/bin/activate
(env) $ pip install nodeenv
(env) $ nodeenv --version
0.6.5
If you want to work with the latest version of the nodeenv you can
install it from the github `repository`_::
$ git clone https://github.com/ekalinin/nodeenv.git
$ ./nodeenv/nodeenv.py --help
or with `pip`_::
$ pip install -e git+https://github.com/ekalinin/nodeenv.git#egg=nodeenv
.. _repository: https://github.com/ekalinin/nodeenv
.. _pip: http://pypi.python.org/pypi/pip
.. _easy_install: http://pypi.python.org/pypi/setuptools
Dependency
----------
For nodeenv
^^^^^^^^^^^
* python (2.6+, 3.5+, or pypy)
* make
* tail
For node.js
^^^^^^^^^^^
* libssl-dev
Usage
-----
Basic
^^^^^
Create new environment::
$ nodeenv env
Activate new environment::
$ . env/bin/activate
Check versions of main packages::
(env) $ node -v
v0.10.26
(env) $ npm -v
1.4.3
Deactivate environment::
(env) $ deactivate_node
Advanced
^^^^^^^^
Get available node.js versions::
$ nodeenv --list
0.0.1 0.0.2 0.0.3 0.0.4 0.0.5 0.0.6 0.1.0
0.1.2 0.1.3 0.1.4 0.1.5 0.1.6 0.1.7 0.1.8
0.1.10 0.1.11 0.1.12 0.1.13 0.1.14 0.1.15 0.1.16
0.1.18 0.1.19 0.1.20 0.1.21 0.1.22 0.1.23 0.1.24
0.1.26 0.1.27 0.1.28 0.1.29 0.1.30 0.1.31 0.1.32
0.1.90 0.1.91 0.1.92 0.1.93 0.1.94 0.1.95 0.1.96
0.1.98 0.1.99 0.1.100 0.1.101 0.1.102 0.1.103 0.1.104
0.2.1 0.2.2 0.2.3 0.2.4 0.2.5 0.2.6 0.3.0
0.3.2 0.3.3 0.3.4 0.3.5 0.3.6 0.3.7 0.3.8
0.4.1 0.4.2 0.4.3 0.4.4 0.4.5 0.4.6
Install node.js "0.4.3" without ssl support with 4 parallel commands
for compilation and npm.js "0.3.17"::
$ nodeenv --without-ssl --node=0.4.3 --npm=0.3.17 --with-npm --jobs=4 env-4.3
Install node.js from the source::
$ nodeenv --node=0.10.25 --source env-0.10.25
Install node.js from a mirror::
$ nodeenv --node=10.19.0 --mirror=https://npm.taobao.org/mirrors/node
It's much faster to install from the prebuilt package than Install & compile
node.js from source::
$ time nodeenv --node=0.10.25 --prebuilt env-0.10.25-prebuilt
+ Install node.js (0.10.25) ... done.
real 0m6.928s
user 0m0.408s
sys 0m1.144s
$ time nodeenv --node=0.10.25 --source env-0.10.25-src
+ Install node.js (0.10.25) ... done.
real 4m12.602s
user 6m34.112s
sys 0m30.524s
Create a new environment with the system-wide node.js::
$ nodeenv --node=system
Saving the versions of all installed packages to a file::
$ . env-4.3/bin/activate
(env-4.3)$ npm install -g express
(env-4.3)$ npm install -g jade
(env-4.3)$ freeze ../prod-requirements.txt
If you want to list locally installed packages use ``-l`` option::
(env-4.3)$ freeze -l ../prod-requirements.txt
Create an environment from a requirements file::
$ nodeenv --requirements=../prod-requirements.txt --jobs=4 env-copy
Requirements files are plain text files that contain a list of packages
to be installed. These text files allow you to create repeatable installations.
Requirements file example::
$ cat ../prod-requirements.txt
connect@1.3.0
express@2.2.2
jade@0.10.4
mime@1.2.1
npm@0.3.17
qs@0.0.7
If you already have the python virtualenv tool, and want to use nodeenv and
virtualenv in conjunction, then you should create (or activate) the python
virtual environment::
# in case of using virtualenv_wrapper
$ mkvirtualenv my_env
# in case of using virtualenv
$ . my_env/bin/activate
and add a node virtual environment to this existing new_venv::
$ nodeenv -p
If you need to set the path to make used to build node::
$ nodeenv -m /usr/local/bin/gmake ENV
That's all. Now, all your node.js modules will be installed into your virtual
environment::
$ workon my_env
$ npm install -g coffee-script
$ command -v coffee
/home/monty/virtualenvs/my_env/bin/coffee
Creating a virtual environment with a custom prompt:
$ nodeenv --node=12.18.2 --prompt="(myenv)" nodeenv
If environment's directory already exists then you can use ``--force`` option::
$ nodeenv --requirements=requirements.txt --jobs=4 --force env
If you already have an environment and want to update packages from requirements
file you can use ``--update`` option::
$ . env-4.3/bin/activate
(env-4.3)$ nodeenv --requirements=requirements.txt --update env-4.3
If you want to call node from environment without activation then you should
use `shim` script::
$ ./env-4.3/bin/shim --version
v0.4.3
Configuration
-------------
You can use the INI-style file ``~/.nodeenvrc`` to set default values for many options,
the keys in that file are the long command-line option names.
These are the available options and their defaults::
[nodeenv]
node = 'latest'
npm = 'latest'
with_npm = False
jobs = '2'
without_ssl = False
debug = False
profile = False
make = 'make'
prebuilt = True
ignore_ssl_certs = False
mirror = None
Alternatives
------------
There are several alternatives that create isolated environments:
* `nave <https://github.com/isaacs/nave>`_ - Virtual Environments for Node.
Nave stores all environments in one directory ``~/.nave``. Can create
per node version environments using `nave use envname versionname`.
Can not pass additional arguments into configure (for example --without-ssl)
Can't run on windows because it relies on bash.
* `nvm <https://github.com/creationix/nvm/blob/master/nvm.sh>`_ - Node Version
Manager. It is necessarily to do `nvm sync` for caching available node.js
version.
Can not pass additional arguments into configure (for example --without-ssl)
* virtualenv_ - Virtual Python Environment builder. For python only.
.. _`virtualenv`: https://github.com/pypa/virtualenv
LICENSE
=======
BSD / `LICENSE <https://github.com/ekalinin/nodeenv/blob/master/LICENSE>`_
Nodeenv changelog
=================
Version 1.3.1
-------------
- Windows related fix `#207 <https://github.com/ekalinin/nodeenv/pull/207>`_
- Fixed url for arm64 `#210 <https://github.com/ekalinin/nodeenv/pull/210>`_
- Fixed fish support `#212 <https://github.com/ekalinin/nodeenv/pull/212>`_
Version 1.3.0
-------------
- Fixed symlink creation `#189 <https://github.com/ekalinin/nodeenv/issues/189>`_
- Python3.6 support `#200 <https://github.com/ekalinin/nodeenv/pull/200>`_
- Added `activate` for fish `#201 <https://github.com/ekalinin/nodeenv/pull/201>`_
- Fixed cp866 `#202 <https://github.com/ekalinin/nodeenv/pull/202>`_
- Added Conda support `#203 <https://github.com/ekalinin/nodeenv/pull/203>`_
Version 1.2.0
-------------
- Support for Cygwin `#194 <https://github.com/ekalinin/nodeenv/pull/194>`_ `#195
<https://github.com/ekalinin/nodeenv/pull/195>`_
- tox.ini as default configuration file `#197
<https://github.com/ekalinin/nodeenv/pull/197>`_
Version 1.1.4
-------------
- Fixed directory copy `#188 <https://github.com/ekalinin/nodeenv/issues/188>`_
Version 1.1.3
-------------
- Fixed spaces in paths `#187 <https://github.com/ekalinin/nodeenv/issues/187>`_
Version 1.1.2
-------------
- Fixed MANIFEST.in `#184 <https://github.com/ekalinin/nodeenv/issues/184>`_
Version 1.1.1
-------------
- Improve Windows support. See `#181
<https://github.com/ekalinin/nodeenv/pull/181>`_
- Fix bug when downgrading using `--force`. See `#183
<https://github.com/ekalinin/nodeenv/pull/183>`_
- Environment creation fails with non-ASCII chars in path. See `#49
<https://github.com/ekalinin/nodeenv/issues/49>`_
Version 1.1.0
-------------
- Windows support
Version 1.0.0
-------------
- `--prebuilt` is default. See `# 161`_
- Added `--source` option
- Added support for the `ARM`. See `# 171`_
- Fixed issue with `$PATH`. See `# 86`_
.. _# 171: https://github.com/ekalinin/nodeenv/issues/171
.. _# 161: https://github.com/ekalinin/nodeenv/issues/161
.. _# 86: https://github.com/ekalinin/nodeenv/issues/86
Version 0.13.6
--------------
- Use https for nodejs.org. See `# 129`_
.. _# 129: https://github.com/ekalinin/nodeenv/issues/129
Version 0.13.5
--------------
- Improved user-agent identification
Version 0.13.4
--------------
- Custom ``user-agent``. See `# 125`_, `# 127`_
.. _# 125: https://github.com/ekalinin/nodeenv/issues/125
.. _# 127: https://github.com/ekalinin/nodeenv/issues/127
Version 0.13.3
--------------
- Fixed env creation with non-ASCII chars in path. See `# 49`_
- Fixed logging with unicode chars. See `# 96`_
- Skip new lines at the end of requirements.txt. See `# 122`_
- Fixed UnicodeDecodeError at build on non UTF-8 environment. See `# 124`_
.. _# 49: https://github.com/ekalinin/nodeenv/issues/49
.. _# 96: https://github.com/ekalinin/nodeenv/issues/96
.. _# 122: https://github.com/ekalinin/nodeenv/issues/122
.. _# 124: https://github.com/ekalinin/nodeenv/pull/124
Version 0.13.2
--------------
- Fixed ``freeze`` command. See `# 121`_
.. _# 121: https://github.com/ekalinin/nodeenv/issues/121
Version 0.13.1
--------------
- Fixed bug: ``nodeenv --list is raising TypeError``. See `# 117`_, `# 118`_
.. _# 117: https://github.com/ekalinin/nodeenv/issues/117
.. _# 118: https://github.com/ekalinin/nodeenv/pull/118
Version 0.13.0
--------------
- Removed deps from ``sort``, ``egrep``, ``curl``, ``tar``.
See `# 114`_, `# 116`_.
.. _# 114: https://github.com/ekalinin/nodeenv/pull/114
.. _# 116: https://github.com/ekalinin/nodeenv/pull/116
Version 0.12.3
--------------
- Fixed check for installed curl/tar/etc for py3.
Version 0.12.2
--------------
- Added check for installed curl/egrep/sort/tar. See `# 110`_, `# 61`_
.. _# 110: https://github.com/ekalinin/nodeenv/issues/110
.. _# 61: https://github.com/ekalinin/nodeenv/issues/61
Version 0.12.1
--------------
- Removed dep for lxml in favor of stdlib HTMLParser. See `# 109`_
- Added integration with travis-ci. See `# 109`_
- Added some tests. See `# 109`_
.. _# 109: https://github.com/ekalinin/nodeenv/pull/109
Version 0.12.0
--------------
- Added support for io.js (new option ``--iojs``)
- Fixed ``get_last_stable_node_version`` for python3
Version 0.11.1
--------------
- Disallow prefix overridden by .npmrc. See `# 98`_, `# 100`_, `# 103`_
.. _# 98: https://github.com/ekalinin/nodeenv/issue/98
.. _# 100: https://github.com/ekalinin/nodeenv/pull/100
.. _# 103: https://github.com/ekalinin/nodeenv/pull/103
Version 0.11.0
--------------
- Improved dpkg rules. See `# 90`_
- Added --config-file option. See `# 91`_
- Read "./setup.cfg" in addition to "~/.nodeenvrc" by default. See `# 91`_
- Python3 compatibility. See `# 92`_, `# 93`_
.. _# 90: https://github.com/ekalinin/nodeenv/pull/90
.. _# 91: https://github.com/ekalinin/nodeenv/pull/91
.. _# 92: https://github.com/ekalinin/nodeenv/pull/92
.. _# 93: https://github.com/ekalinin/nodeenv/pull/93
Version 0.10.0
--------------
- Added support for config file. See `# 85`_
- Using of virtualenv detected via python not env variable. See `# 87`_
- Fixed ``freeze`` for zsh. See `# 88`_
- Added ``nodejs`` symlink creation. See `# 84`_
.. _# 85: https://github.com/ekalinin/nodeenv/pull/85
.. _# 87: https://github.com/ekalinin/nodeenv/pull/87
.. _# 88: https://github.com/ekalinin/nodeenv/pull/88
Version 0.9.6
-------------
- Removed ``os.symlink`` added in `# 76`_. See `# 84`_
.. _# 84: https://github.com/ekalinin/nodeenv/issues/84
Version 0.9.5
-------------
- Fixed a few spelling typos in README. See `# 74`_
- Fixed example of using --update option in README. See `# 74`_
- Improved args passing into shim script. See `# 75`_
- Try to find ``nodejs`` if used system-wide node as well. See `# 76`_
- Added ``assert`` if used system-wide node and it wasnt found. See `# 76`_
- Added ``-l`` option into ``freeze`` command. See `# 71`_
.. _# 71: https://github.com/ekalinin/nodeenv/issues/71
.. _# 74: https://github.com/ekalinin/nodeenv/issues/74
.. _# 75: https://github.com/ekalinin/nodeenv/pull/75
.. _# 76: https://github.com/ekalinin/nodeenv/pull/76
Version 0.9.4
-------------
- Fixed support for python2.6. See `# 70`_
.. _# 70: https://github.com/ekalinin/nodeenv/issues/70
Version 0.9.3
-------------
- Fixed npm when using prebuilt binaries on Mac OS X. See `# 68`_
- Fixed using ``system`` node under python3.4. See `# 43`_
- If used ``system`` node script ``bin/node`` always overwritten
.. _# 68: https://github.com/ekalinin/nodeenv/issues/68
.. _# 43: https://github.com/ekalinin/nodeenv/issues/43
Version 0.9.2
-------------
- Fixed infinite loop when system-wide node used. See `# 67`_
.. _# 67: https://github.com/ekalinin/nodeenv/issues/67
Version 0.9.1
-------------
- Fixed 'shim' script if used system-wide node
- Fixed shebang in the 'shim'
- Added shim with name 'node' in case of using system-wide node
Version 0.9.0
-------------
- Added `shim` script. See `# 59`_
.. _# 59: https://github.com/ekalinin/nodeenv/issues/59
Version 0.8.2
-------------
- Fixed prebuilt installation:
- cp more choosy. See `# 64`_
- exclude top-level files in prebuilt tar. See `# 63`_
.. _# 63: https://github.com/ekalinin/nodeenv/issues/63
.. _# 64: https://github.com/ekalinin/nodeenv/issues/64
Version 0.8.1
-------------
- Fixed system's node usage. See `# 62`_
.. _# 62: https://github.com/ekalinin/nodeenv/pull/62
Version 0.8.0
-------------
- Added support for prebuilt packages. See `# 56`_
- Added support for python3. See `# 42`_
.. _# 56: https://github.com/ekalinin/nodeenv/issues/56
.. _# 42: https://github.com/ekalinin/nodeenv/issues/42
Version 0.7.3
-------------
- Fixed npm.js redirect. See `# 52`_
- Added ``--update`` option. See `# 25`_
.. _# 52: https://github.com/ekalinin/nodeenv/pull/52
.. _# 25: https://github.com/ekalinin/nodeenv/issues/25
Version 0.7.2
-------------
- Bug fixing in ``freeze``. See `# 47`_
.. _# 47: https://github.com/ekalinin/nodeenv/issues/47
Version 0.7.1
-------------
- Added ``--make`` option
Version 0.7.0
-------------
- added ``--force``. See `# 37`_
- python3 support (first steps). See `# 38`_, `# 39`_
- escaping all directories used by subprocesses. See `# 40`_
- added an option to use system-wide node. See `# 41`_
.. _# 37: https://github.com/ekalinin/nodeenv/pull/37
.. _# 38: https://github.com/ekalinin/nodeenv/issues/38
.. _# 39: https://github.com/ekalinin/nodeenv/issues/39
.. _# 40: https://github.com/ekalinin/nodeenv/pull/40
.. _# 41: https://github.com/ekalinin/nodeenv/pull/41
Version 0.6.6
-------------
- Fixed incomplete package names using freeze. See `# 35`_
- Fixed packages installation type in README. See `# 33`_
.. _# 33: https://github.com/ekalinin/nodeenv/issues/33
.. _# 35: https://github.com/ekalinin/nodeenv/pull/35
Version 0.6.5
-------------
- Node's source not loaded if it already exists in FS.
Version 0.6.4
-------------
- Added python3 compatibility. See `# 32`_
.. _# 32: https://github.com/ekalinin/nodeenv/pull/32
Version 0.6.3
-------------
- Fixed ``nodeenv -p``. See `issue # 31`_
.. _issue # 31: https://github.com/ekalinin/nodeenv/issues/31
Version 0.6.2
-------------
- Skipped stand-alone npm installation by default. See `pull # 30`_
- ``--without-npm`` has been changed to ``--with-npm``. See `pull # 30`_
- Fixed options for running Make instances in parallel. See `pull # 30`_
.. _pull # 30: https://github.com/ekalinin/nodeenv/pull/30
Version 0.6.1
-------------
- Used pkg_resources.parse_version to compare versions. See `pull # 29`_
- Fixed doubling prompt inside a virtualenv. See `issues # 26`_
.. _pull # 29: https://github.com/ekalinin/nodeenv/pull/29
.. _issues # 26: https://github.com/ekalinin/nodeenv/issues/26
Version 0.6.0
-------------
- Fixed typo in deactive command. See `pull # 20`_
- Not used "--insecure" to download npm. See `pull # 21`_
- Removed "src" directory after installation. See `pull # 22`_
- Added option "--clean-src"
- Added integration with python's virtualenv. See `pull # 23`_
.. _pull # 20: https://github.com/ekalinin/nodeenv/pull/20
.. _pull # 21: https://github.com/ekalinin/nodeenv/pull/21
.. _pull # 22: https://github.com/ekalinin/nodeenv/pull/22
.. _pull # 23: https://github.com/ekalinin/nodeenv/pull/23
Version 0.5.3
-------------
- Bug fix. Used https, /dist/latest/. See `pull # 16`_
.. _pull # 16: https://github.com/ekalinin/nodeenv/pull/16
Version 0.5.2
-------------
- Improved installation logic for release candidate versions. See `pull # 10`_
.. _pull # 10: https://github.com/ekalinin/nodeenv/pull/10
Version 0.5.1
-------------
- Improved logic for the option '--without-npm'. See `issue # 14`_, `pull # 15`_
.. _issue # 14: https://github.com/ekalinin/nodeenv/issues/14
.. _pull # 15: https://github.com/ekalinin/nodeenv/pull/15
Version 0.5.0
-------------
- The virtual environment's path is no longer hardcoded into the
activation script. See `pull # 13`_
.. _pull # 13: https://github.com/ekalinin/nodeenv/pull/13
Version 0.4.3
-------------
- Fixed metavar for ``--npm``
- ``npm install -g`` used for npm >=1.0, not noly for `latest`
Version 0.4.2
-------------
- Added README.ru.rst
Version 0.4.1
-------------
- Fixed bug in print_node_versions. See `pull # 11`_
- Added deps in README
.. _pull # 11: https://github.com/ekalinin/nodeenv/pull/11
Version 0.4.0
-------------
- Compatibility with virtualenv (renamed deactivate to deactivate_node).
See `pull # 9`_, `issue # 6`_
.. _pull # 9: https://github.com/ekalinin/nodeenv/pull/9
.. _issue # 6: https://github.com/ekalinin/nodeenv/issues/6
Version 0.3.10
--------------
- Fixed bug in url detection for node.js download
Version 0.3.9
-------------
- Deleted notify method calls. See `pull # 7`_
- Updated tar url for node.js > 0.5.0. See `pull # 8`_
.. _pull # 7: https://github.com/ekalinin/nodeenv/pull/7
.. _pull # 8: https://github.com/ekalinin/nodeenv/pull/8
Version 0.3.8
-------------
- Added `NODE_PATH` variable export (for correct module
search after installation via npm)
Version 0.3.7
-------------
- Shows command output when error occurs
- Excluded 'npm' from `freeze` list
- Fixed bug with 'not only letter' names in `freeze` list
- Added global installation for npm >= 1.0 (when install
soft from requirement file)
Version 0.3.6
-------------
- Fixed ``freeze`` output command. See `request # 5`_
- Diagnostic message fixed. See `pull # 4`_
.. _request # 5 : https://github.com/ekalinin/nodeenv/issues/5
.. _pull # 4 : https://github.com/ekalinin/nodeenv/pull/4
Version 0.3.5
-------------
- Added option ``--npm`` to install certain npm.js version. Request_ .
- Fixed ``freeze`` command for npm >= 1.0.x.
.. _Request: https://github.com/ekalinin/nodeenv/issues/3
Version 0.3.4
-------------
- Fixed `problem #2`_ with new npm installation script. Added
``--no-npm-clean`` option. The default to the npm 0.x cleanup.
.. _problem #2: https://github.com/ekalinin/nodeenv/issues/2
Version 0.3.3
-------------
- Fixed `problem #1`_ with installation from PyPI via easy_install.
Added ``MANIFEST.in`` file.
.. _problem #1: https://github.com/ekalinin/nodeenv/issues/1
Version 0.3.2
-------------
- Internal improvements
- Logging refactoring
Version 0.3.1
-------------
- Default environment promt is folder name
Version 0.3.0
--------------
- Renamed nve to nodeenv

View File

@@ -0,0 +1,124 @@
Metadata-Version: 2.1
Name: pyparsing
Version: 3.2.1
Summary: pyparsing module - Classes and methods to define and execute parsing grammars
Author-email: Paul McGuire <ptmcg.gm+pyparsing@gmail.com>
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Compilers
Classifier: Topic :: Text Processing
Classifier: Typing :: Typed
Requires-Dist: railroad-diagrams ; extra == "diagrams"
Requires-Dist: jinja2 ; extra == "diagrams"
Project-URL: Homepage, https://github.com/pyparsing/pyparsing/
Provides-Extra: diagrams
PyParsing -- A Python Parsing Module
====================================
|Version| |Build Status| |Coverage| |License| |Python Versions| |Snyk Score|
Introduction
============
The pyparsing module is an alternative approach to creating and
executing simple grammars, vs. the traditional lex/yacc approach, or the
use of regular expressions. The pyparsing module provides a library of
classes that client code uses to construct the grammar directly in
Python code.
*[Since first writing this description of pyparsing in late 2003, this
technique for developing parsers has become more widespread, under the
name Parsing Expression Grammars - PEGs. See more information on PEGs*
`here <https://en.wikipedia.org/wiki/Parsing_expression_grammar>`__
*.]*
Here is a program to parse ``"Hello, World!"`` (or any greeting of the form
``"salutation, addressee!"``):
.. code:: python
from pyparsing import Word, alphas
greet = Word(alphas) + "," + Word(alphas) + "!"
hello = "Hello, World!"
print(hello, "->", greet.parseString(hello))
The program outputs the following::
Hello, World! -> ['Hello', ',', 'World', '!']
The Python representation of the grammar is quite readable, owing to the
self-explanatory class names, and the use of '+', '|' and '^' operator
definitions.
The parsed results returned from ``parseString()`` is a collection of type
``ParseResults``, which can be accessed as a
nested list, a dictionary, or an object with named attributes.
The pyparsing module handles some of the problems that are typically
vexing when writing text parsers:
- extra or missing whitespace (the above program will also handle ``"Hello,World!"``, ``"Hello , World !"``, etc.)
- quoted strings
- embedded comments
The examples directory includes a simple SQL parser, simple CORBA IDL
parser, a config file parser, a chemical formula parser, and a four-
function algebraic notation parser, among many others.
Documentation
=============
There are many examples in the online docstrings of the classes
and methods in pyparsing. You can find them compiled into `online docs <https://pyparsing-docs.readthedocs.io/en/latest/>`__. Additional
documentation resources and project info are listed in the online
`GitHub wiki <https://github.com/pyparsing/pyparsing/wiki>`__. An
entire directory of examples can be found `here <https://github.com/pyparsing/pyparsing/tree/master/examples>`__.
License
=======
MIT License. See header of the `pyparsing __init__.py <https://github.com/pyparsing/pyparsing/blob/master/pyparsing/__init__.py#L1-L23>`__ file.
History
=======
See `CHANGES <https://github.com/pyparsing/pyparsing/blob/master/CHANGES>`__ file.
.. |Build Status| image:: https://github.com/pyparsing/pyparsing/actions/workflows/ci.yml/badge.svg
:target: https://github.com/pyparsing/pyparsing/actions/workflows/ci.yml
.. |Coverage| image:: https://codecov.io/gh/pyparsing/pyparsing/branch/master/graph/badge.svg
:target: https://codecov.io/gh/pyparsing/pyparsing
.. |Version| image:: https://img.shields.io/pypi/v/pyparsing?style=flat-square
:target: https://pypi.org/project/pyparsing/
:alt: Version
.. |License| image:: https://img.shields.io/pypi/l/pyparsing.svg?style=flat-square
:target: https://pypi.org/project/pyparsing/
:alt: License
.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/pyparsing.svg?style=flat-square
:target: https://pypi.org/project/python-liquid/
:alt: Python versions
.. |Snyk Score| image:: https://snyk.io//advisor/python/pyparsing/badge.svg
:target: https://snyk.io//advisor/python/pyparsing
:alt: pyparsing

View File

@@ -0,0 +1,161 @@
Metadata-Version: 2.3
Name: pydantic_core
Version: 2.27.0
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: Framework :: Pydantic
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS
Classifier: Typing :: Typed
Requires-Dist: typing-extensions >=4.6.0, !=4.7.0
License-File: LICENSE
Summary: Core functionality for Pydantic validation and serialization
Home-Page: https://github.com/pydantic/pydantic-core
Author-email: Samuel Colvin <s@muelcolvin.com>
License: MIT
Requires-Python: >=3.8
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/pydantic/pydantic-core
Project-URL: Funding, https://github.com/sponsors/samuelcolvin
Project-URL: Source, https://github.com/pydantic/pydantic-core
# pydantic-core
[![CI](https://github.com/pydantic/pydantic-core/workflows/ci/badge.svg?event=push)](https://github.com/pydantic/pydantic-core/actions?query=event%3Apush+branch%3Amain+workflow%3Aci)
[![Coverage](https://codecov.io/gh/pydantic/pydantic-core/branch/main/graph/badge.svg)](https://codecov.io/gh/pydantic/pydantic-core)
[![pypi](https://img.shields.io/pypi/v/pydantic-core.svg)](https://pypi.python.org/pypi/pydantic-core)
[![versions](https://img.shields.io/pypi/pyversions/pydantic-core.svg)](https://github.com/pydantic/pydantic-core)
[![license](https://img.shields.io/github/license/pydantic/pydantic-core.svg)](https://github.com/pydantic/pydantic-core/blob/main/LICENSE)
This package provides the core functionality for [pydantic](https://docs.pydantic.dev) validation and serialization.
Pydantic-core is currently around 17x faster than pydantic V1.
See [`tests/benchmarks/`](./tests/benchmarks/) for details.
## Example of direct usage
_NOTE: You should not need to use pydantic-core directly; instead, use pydantic, which in turn uses pydantic-core._
```py
from pydantic_core import SchemaValidator, ValidationError
v = SchemaValidator(
{
'type': 'typed-dict',
'fields': {
'name': {
'type': 'typed-dict-field',
'schema': {
'type': 'str',
},
},
'age': {
'type': 'typed-dict-field',
'schema': {
'type': 'int',
'ge': 18,
},
},
'is_developer': {
'type': 'typed-dict-field',
'schema': {
'type': 'default',
'schema': {'type': 'bool'},
'default': True,
},
},
},
}
)
r1 = v.validate_python({'name': 'Samuel', 'age': 35})
assert r1 == {'name': 'Samuel', 'age': 35, 'is_developer': True}
# pydantic-core can also validate JSON directly
r2 = v.validate_json('{"name": "Samuel", "age": 35}')
assert r1 == r2
try:
v.validate_python({'name': 'Samuel', 'age': 11})
except ValidationError as e:
print(e)
"""
1 validation error for model
age
Input should be greater than or equal to 18
[type=greater_than_equal, context={ge: 18}, input_value=11, input_type=int]
"""
```
## Getting Started
You'll need rust stable [installed](https://rustup.rs/), or rust nightly if you want to generate accurate coverage.
With rust and python 3.8+ installed, compiling pydantic-core should be possible with roughly the following:
```bash
# clone this repo or your fork
git clone git@github.com:pydantic/pydantic-core.git
cd pydantic-core
# create a new virtual env
python3 -m venv env
source env/bin/activate
# install dependencies and install pydantic-core
make install
```
That should be it, the example shown above should now run.
You might find it useful to look at [`python/pydantic_core/_pydantic_core.pyi`](./python/pydantic_core/_pydantic_core.pyi) and
[`python/pydantic_core/core_schema.py`](./python/pydantic_core/core_schema.py) for more information on the python API,
beyond that, [`tests/`](./tests) provide a large number of examples of usage.
If you want to contribute to pydantic-core, you'll want to use some other make commands:
* `make build-dev` to build the package during development
* `make build-prod` to perform an optimised build for benchmarking
* `make test` to run the tests
* `make testcov` to run the tests and generate a coverage report
* `make lint` to run the linter
* `make format` to format python and rust code
* `make` to run `format build-dev lint test`
## Profiling
It's possible to profile the code using the [`flamegraph` utility from `flamegraph-rs`](https://github.com/flamegraph-rs/flamegraph). (Tested on Linux.) You can install this with `cargo install flamegraph`.
Run `make build-profiling` to install a release build with debugging symbols included (needed for profiling).
Once that is built, you can profile pytest benchmarks with (e.g.):
```bash
flamegraph -- pytest tests/benchmarks/test_micro_benchmarks.py -k test_list_of_ints_core_py --benchmark-enable
```
The `flamegraph` command will produce an interactive SVG at `flamegraph.svg`.
## Releasing
1. Bump package version locally. Do not just edit `Cargo.toml` on Github, you need both `Cargo.toml` and `Cargo.lock` to be updated.
2. Make a PR for the version bump and merge it.
3. Go to https://github.com/pydantic/pydantic-core/releases and click "Draft a new release"
4. In the "Choose a tag" dropdown enter the new tag `v<the.new.version>` and select "Create new tag on publish" when the option appears.
5. Enter the release title in the form "v<the.new.version> <YYYY-MM-DD>"
6. Click Generate release notes button
7. Click Publish release
8. Go to https://github.com/pydantic/pydantic-core/actions and ensure that all build for release are done successfully.
9. Go to https://pypi.org/project/pydantic-core/ and ensure that the latest release is published.
10. Done 🎉

View File

@@ -0,0 +1,142 @@
Metadata-Version: 2.1
Name: setuptools
Version: 75.4.0
Summary: Easily download, build, install, upgrade, and uninstall Python packages
Author-email: Python Packaging Authority <distutils-sig@python.org>
Project-URL: Source, https://github.com/pypa/setuptools
Project-URL: Documentation, https://setuptools.pypa.io/
Project-URL: Changelog, https://setuptools.pypa.io/en/stable/history.html
Keywords: CPAN PyPI distutils eggs package management
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Archiving :: Packaging
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
License-File: LICENSE
Provides-Extra: certs
Provides-Extra: check
Requires-Dist: pytest-checkdocs >=2.4 ; extra == 'check'
Requires-Dist: pytest-ruff >=0.2.1 ; (sys_platform != "cygwin") and extra == 'check'
Requires-Dist: ruff >=0.7.0 ; (sys_platform != "cygwin") and extra == 'check'
Provides-Extra: core
Requires-Dist: packaging >=24.2 ; extra == 'core'
Requires-Dist: more-itertools >=8.8 ; extra == 'core'
Requires-Dist: jaraco.text >=3.7 ; extra == 'core'
Requires-Dist: wheel >=0.43.0 ; extra == 'core'
Requires-Dist: platformdirs >=4.2.2 ; extra == 'core'
Requires-Dist: jaraco.collections ; extra == 'core'
Requires-Dist: jaraco.functools >=4 ; extra == 'core'
Requires-Dist: packaging ; extra == 'core'
Requires-Dist: more-itertools ; extra == 'core'
Requires-Dist: importlib-metadata >=6 ; (python_version < "3.10") and extra == 'core'
Requires-Dist: tomli >=2.0.1 ; (python_version < "3.11") and extra == 'core'
Provides-Extra: cover
Requires-Dist: pytest-cov ; extra == 'cover'
Provides-Extra: doc
Requires-Dist: sphinx >=3.5 ; extra == 'doc'
Requires-Dist: jaraco.packaging >=9.3 ; extra == 'doc'
Requires-Dist: rst.linker >=1.9 ; extra == 'doc'
Requires-Dist: furo ; extra == 'doc'
Requires-Dist: sphinx-lint ; extra == 'doc'
Requires-Dist: jaraco.tidelift >=1.4 ; extra == 'doc'
Requires-Dist: pygments-github-lexers ==0.0.5 ; extra == 'doc'
Requires-Dist: sphinx-favicon ; extra == 'doc'
Requires-Dist: sphinx-inline-tabs ; extra == 'doc'
Requires-Dist: sphinx-reredirects ; extra == 'doc'
Requires-Dist: sphinxcontrib-towncrier ; extra == 'doc'
Requires-Dist: sphinx-notfound-page <2,>=1 ; extra == 'doc'
Requires-Dist: pyproject-hooks !=1.1 ; extra == 'doc'
Requires-Dist: towncrier <24.7 ; extra == 'doc'
Provides-Extra: enabler
Requires-Dist: pytest-enabler >=2.2 ; extra == 'enabler'
Provides-Extra: ssl
Provides-Extra: test
Requires-Dist: pytest !=8.1.*,>=6 ; extra == 'test'
Requires-Dist: virtualenv >=13.0.0 ; extra == 'test'
Requires-Dist: wheel >=0.44.0 ; extra == 'test'
Requires-Dist: pip >=19.1 ; extra == 'test'
Requires-Dist: packaging >=24.2 ; extra == 'test'
Requires-Dist: jaraco.envs >=2.2 ; extra == 'test'
Requires-Dist: pytest-xdist >=3 ; extra == 'test'
Requires-Dist: jaraco.path >=3.2.0 ; extra == 'test'
Requires-Dist: build[virtualenv] >=1.0.3 ; extra == 'test'
Requires-Dist: filelock >=3.4.0 ; extra == 'test'
Requires-Dist: ini2toml[lite] >=0.14 ; extra == 'test'
Requires-Dist: tomli-w >=1.0.0 ; extra == 'test'
Requires-Dist: pytest-timeout ; extra == 'test'
Requires-Dist: pytest-home >=0.5 ; extra == 'test'
Requires-Dist: pytest-subprocess ; extra == 'test'
Requires-Dist: pyproject-hooks !=1.1 ; extra == 'test'
Requires-Dist: jaraco.test >=5.5 ; extra == 'test'
Requires-Dist: jaraco.develop >=7.21 ; (python_version >= "3.9" and sys_platform != "cygwin") and extra == 'test'
Requires-Dist: pytest-perf ; (sys_platform != "cygwin") and extra == 'test'
Provides-Extra: type
Requires-Dist: pytest-mypy ; extra == 'type'
Requires-Dist: mypy <1.14,>=1.12 ; extra == 'type'
Requires-Dist: importlib-metadata >=7.0.2 ; (python_version < "3.10") and extra == 'type'
Requires-Dist: jaraco.develop >=7.21 ; (sys_platform != "cygwin") and extra == 'type'
.. |pypi-version| image:: https://img.shields.io/pypi/v/setuptools.svg
:target: https://pypi.org/project/setuptools
.. |py-version| image:: https://img.shields.io/pypi/pyversions/setuptools.svg
.. |test-badge| image:: https://github.com/pypa/setuptools/actions/workflows/main.yml/badge.svg
:target: https://github.com/pypa/setuptools/actions?query=workflow%3A%22tests%22
:alt: tests
.. |ruff-badge| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json
:target: https://github.com/astral-sh/ruff
:alt: Ruff
.. |docs-badge| image:: https://img.shields.io/readthedocs/setuptools/latest.svg
:target: https://setuptools.pypa.io
.. |skeleton-badge| image:: https://img.shields.io/badge/skeleton-2024-informational
:target: https://blog.jaraco.com/skeleton
.. |codecov-badge| image:: https://img.shields.io/codecov/c/github/pypa/setuptools/master.svg?logo=codecov&logoColor=white
:target: https://codecov.io/gh/pypa/setuptools
.. |tidelift-badge| image:: https://tidelift.com/badges/github/pypa/setuptools?style=flat
:target: https://tidelift.com/subscription/pkg/pypi-setuptools?utm_source=pypi-setuptools&utm_medium=readme
.. |discord-badge| image:: https://img.shields.io/discord/803025117553754132
:target: https://discord.com/channels/803025117553754132/815945031150993468
:alt: Discord
|pypi-version| |py-version| |test-badge| |ruff-badge| |docs-badge| |skeleton-badge| |codecov-badge| |discord-badge|
See the `Quickstart <https://setuptools.pypa.io/en/latest/userguide/quickstart.html>`_
and the `User's Guide <https://setuptools.pypa.io/en/latest/userguide/>`_ for
instructions on how to use Setuptools.
Questions and comments should be directed to `GitHub Discussions
<https://github.com/pypa/setuptools/discussions>`_.
Bug reports and especially tested patches may be
submitted directly to the `bug tracker
<https://github.com/pypa/setuptools/issues>`_.
Code of Conduct
===============
Everyone interacting in the setuptools project's codebases, issue trackers,
chat rooms, and fora is expected to follow the
`PSF Code of Conduct <https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md>`_.
For Enterprise
==============
Available as part of the Tidelift Subscription.
Setuptools and the maintainers of thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use.
`Learn more <https://tidelift.com/subscription/pkg/pypi-setuptools?utm_source=pypi-setuptools&utm_medium=referral&utm_campaign=github>`_.

View File

@@ -0,0 +1,118 @@
Metadata-Version: 2.1
Name: distlib
Version: 0.3.9
Summary: Distribution utilities
Home-page: https://github.com/pypa/distlib
Author: Vinay Sajip
Author-email: vinay_sajip@red-dove.com
License: PSF-2.0
Project-URL: Documentation, https://distlib.readthedocs.io/
Project-URL: Source, https://github.com/pypa/distlib
Project-URL: Tracker, https://github.com/pypa/distlib/issues
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Python Software Foundation License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development
License-File: LICENSE.txt
|badge1| |badge2|
.. |badge1| image:: https://img.shields.io/github/actions/workflow/status/pypa/distlib/package-tests.yml
:alt: GitHub Workflow Status (with event)
.. |badge2| image:: https://img.shields.io/codecov/c/github/pypa/distlib
:target: https://app.codecov.io/gh/pypa/distlib
:alt: GitHub coverage status
What is it?
-----------
Distlib is a library which implements low-level functions that relate to
packaging and distribution of Python software. It is intended to be used as the
basis for third-party packaging tools. The documentation is available at
https://distlib.readthedocs.io/
Main features
-------------
Distlib currently offers the following features:
* The package ``distlib.database``, which implements a database of installed
distributions, as defined by :pep:`376`, and distribution dependency graph
logic. Support is also provided for non-installed distributions (i.e.
distributions registered with metadata on an index like PyPI), including
the ability to scan for dependencies and building dependency graphs.
* The package ``distlib.index``, which implements an interface to perform
operations on an index, such as registering a project, uploading a
distribution or uploading documentation. Support is included for verifying
SSL connections (with domain matching) and signing/verifying packages using
GnuPG.
* The package ``distlib.metadata``, which implements distribution metadata as
defined by :pep:`643`, :pep:`566`, :pep:`345`, :pep:`314` and :pep:`241`.
* The package ``distlib.markers``, which implements environment markers as
defined by :pep:`508`.
* The package ``distlib.manifest``, which implements lists of files used
in packaging source distributions.
* The package ``distlib.locators``, which allows finding distributions, whether
on PyPI (XML-RPC or via the "simple" interface), local directories or some
other source.
* The package ``distlib.resources``, which allows access to data files stored
in Python packages, both in the file system and in .zip files.
* The package ``distlib.scripts``, which allows installing of scripts with
adjustment of shebang lines and support for native Windows executable
launchers.
* The package ``distlib.version``, which implements version specifiers as
defined by :pep:`440`, but also support for working with "legacy" versions and
semantic versions.
* The package ``distlib.wheel``, which provides support for building and
installing from the Wheel format for binary distributions (see :pep:`427`).
* The package ``distlib.util``, which contains miscellaneous functions and
classes which are useful in packaging, but which do not fit neatly into
one of the other packages in ``distlib``.* The package implements enhanced
globbing functionality such as the ability to use ``**`` in patterns to
specify recursing into subdirectories.
Python version and platform compatibility
-----------------------------------------
Distlib is intended to be used on and is tested on Python versions 2.7 and 3.6 or later,
pypy-2.7 and pypy3 on Linux, Windows, and macOS.
Project status
--------------
The project has reached a mature status in its development: there is a comprehensive
test suite and it has been exercised on Windows, Ubuntu and macOS. The project is used
by well-known projects such as `pip <https://pypi.org/pypi/pip>`_ and `caniusepython3
<https://pypi.org/pypi/caniusepython3>`_.
This project was migrated from Mercurial to Git and from BitBucket to GitHub, and
although all information of importance has been retained across the migration, some
commit references in issues and issue comments may have become invalid.
Code of Conduct
---------------
Everyone interacting in the distlib project's codebases, issue trackers, chat
rooms, and mailing lists is expected to follow the `PyPA Code of Conduct`_.
.. _PyPA Code of Conduct: https://www.pypa.io/en/latest/code-of-conduct/

View File

@@ -0,0 +1,155 @@
Metadata-Version: 2.1
Name: identify
Version: 2.6.6
Summary: File identification library for Python
Home-page: https://github.com/pre-commit/identify
Author: Chris Kuehl
Author-email: ckuehl@ocf.berkeley.edu
License: MIT
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: license
Requires-Dist: ukkonen; extra == "license"
[![build status](https://github.com/pre-commit/identify/actions/workflows/main.yml/badge.svg)](https://github.com/pre-commit/identify/actions/workflows/main.yml)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/pre-commit/identify/main.svg)](https://results.pre-commit.ci/latest/github/pre-commit/identify/main)
identify
========
File identification library for Python.
Given a file (or some information about a file), return a set of standardized
tags identifying what the file is.
## Installation
```bash
pip install identify
```
## Usage
### With a file on disk
If you have an actual file on disk, you can get the most information possible
(a superset of all other methods):
```python
>>> from identify import identify
>>> identify.tags_from_path('/path/to/file.py')
{'file', 'text', 'python', 'non-executable'}
>>> identify.tags_from_path('/path/to/file-with-shebang')
{'file', 'text', 'shell', 'bash', 'executable'}
>>> identify.tags_from_path('/bin/bash')
{'file', 'binary', 'executable'}
>>> identify.tags_from_path('/path/to/directory')
{'directory'}
>>> identify.tags_from_path('/path/to/symlink')
{'symlink'}
```
When using a file on disk, the checks performed are:
* File type (file, symlink, directory, socket)
* Mode (is it executable?)
* File name (mostly based on extension)
* If executable, the shebang is read and the interpreter interpreted
### If you only have the filename
```python
>>> identify.tags_from_filename('file.py')
{'text', 'python'}
```
### If you only have the interpreter
```python
>>> identify.tags_from_interpreter('python3.5')
{'python', 'python3'}
>>> identify.tags_from_interpreter('bash')
{'shell', 'bash'}
>>> identify.tags_from_interpreter('some-unrecognized-thing')
set()
```
### As a cli
```
$ identify-cli --help
usage: identify-cli [-h] [--filename-only] path
positional arguments:
path
optional arguments:
-h, --help show this help message and exit
--filename-only
```
```console
$ identify-cli setup.py; echo $?
["file", "non-executable", "python", "text"]
0
$ identify-cli setup.py --filename-only; echo $?
["python", "text"]
0
$ identify-cli wat.wat; echo $?
wat.wat does not exist.
1
$ identify-cli wat.wat --filename-only; echo $?
1
```
### Identifying LICENSE files
`identify` also has an api for determining what type of license is contained
in a file. This routine is roughly based on the approaches used by
[licensee] (the ruby gem that github uses to figure out the license for a
repo).
The approach that `identify` uses is as follows:
1. Strip the copyright line
2. Normalize all whitespace
3. Return any exact matches
4. Return the closest by edit distance (where edit distance < 5%)
To use the api, install via `pip install identify[license]`
```pycon
>>> from identify import identify
>>> identify.license_id('LICENSE')
'MIT'
```
The return value of the `license_id` function is an [SPDX] id. Currently
licenses are sourced from [choosealicense.com].
[licensee]: https://github.com/benbalter/licensee
[SPDX]: https://spdx.org/licenses/
[choosealicense.com]: https://github.com/github/choosealicense.com
## How it works
A call to `tags_from_path` does this:
1. What is the type: file, symlink, directory? If it's not file, stop here.
2. Is it executable? Add the appropriate tag.
3. Do we recognize the file extension? If so, add the appropriate tags, stop
here. These tags would include binary/text.
4. Peek at the first X bytes of the file. Use these to determine whether it is
binary or text, add the appropriate tag.
5. If identified as text above, try to read and interpret the shebang, and add
appropriate tags.
By design, this means we don't need to partially read files where we recognize
the file extension.

View File

@@ -0,0 +1,58 @@
Metadata-Version: 2.4
Name: filelock
Version: 3.17.0
Summary: A platform independent file lock.
Project-URL: Documentation, https://py-filelock.readthedocs.io
Project-URL: Homepage, https://github.com/tox-dev/py-filelock
Project-URL: Source, https://github.com/tox-dev/py-filelock
Project-URL: Tracker, https://github.com/tox-dev/py-filelock/issues
Maintainer-email: Bernát Gábor <gaborjbernat@gmail.com>
License-Expression: Unlicense
License-File: LICENSE
Keywords: application,cache,directory,log,user
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: The Unlicense (Unlicense)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: System
Requires-Python: >=3.9
Provides-Extra: docs
Requires-Dist: furo>=2024.8.6; extra == 'docs'
Requires-Dist: sphinx-autodoc-typehints>=3; extra == 'docs'
Requires-Dist: sphinx>=8.1.3; extra == 'docs'
Provides-Extra: testing
Requires-Dist: covdefaults>=2.3; extra == 'testing'
Requires-Dist: coverage>=7.6.10; extra == 'testing'
Requires-Dist: diff-cover>=9.2.1; extra == 'testing'
Requires-Dist: pytest-asyncio>=0.25.2; extra == 'testing'
Requires-Dist: pytest-cov>=6; extra == 'testing'
Requires-Dist: pytest-mock>=3.14; extra == 'testing'
Requires-Dist: pytest-timeout>=2.3.1; extra == 'testing'
Requires-Dist: pytest>=8.3.4; extra == 'testing'
Requires-Dist: virtualenv>=20.28.1; extra == 'testing'
Provides-Extra: typing
Requires-Dist: typing-extensions>=4.12.2; (python_version < '3.11') and extra == 'typing'
Description-Content-Type: text/markdown
# filelock
[![PyPI](https://img.shields.io/pypi/v/filelock)](https://pypi.org/project/filelock/)
[![Supported Python
versions](https://img.shields.io/pypi/pyversions/filelock.svg)](https://pypi.org/project/filelock/)
[![Documentation
status](https://readthedocs.org/projects/py-filelock/badge/?version=latest)](https://py-filelock.readthedocs.io/en/latest/?badge=latest)
[![Code style:
black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Downloads](https://static.pepy.tech/badge/filelock/month)](https://pepy.tech/project/filelock)
[![check](https://github.com/tox-dev/py-filelock/actions/workflows/check.yaml/badge.svg)](https://github.com/tox-dev/py-filelock/actions/workflows/check.yaml)
For more information checkout the [official documentation](https://py-filelock.readthedocs.io/en/latest/index.html).

View File

@@ -0,0 +1,161 @@
Metadata-Version: 2.3
Name: pydantic_core
Version: 2.24.0
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: Framework :: Pydantic
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS
Classifier: Typing :: Typed
Requires-Dist: typing-extensions >=4.6.0, !=4.7.0
License-File: LICENSE
Summary: Core functionality for Pydantic validation and serialization
Home-Page: https://github.com/pydantic/pydantic-core
Author-email: Samuel Colvin <s@muelcolvin.com>
License: MIT
Requires-Python: >=3.8
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/pydantic/pydantic-core
Project-URL: Funding, https://github.com/sponsors/samuelcolvin
Project-URL: Source, https://github.com/pydantic/pydantic-core
# pydantic-core
[![CI](https://github.com/pydantic/pydantic-core/workflows/ci/badge.svg?event=push)](https://github.com/pydantic/pydantic-core/actions?query=event%3Apush+branch%3Amain+workflow%3Aci)
[![Coverage](https://codecov.io/gh/pydantic/pydantic-core/branch/main/graph/badge.svg)](https://codecov.io/gh/pydantic/pydantic-core)
[![pypi](https://img.shields.io/pypi/v/pydantic-core.svg)](https://pypi.python.org/pypi/pydantic-core)
[![versions](https://img.shields.io/pypi/pyversions/pydantic-core.svg)](https://github.com/pydantic/pydantic-core)
[![license](https://img.shields.io/github/license/pydantic/pydantic-core.svg)](https://github.com/pydantic/pydantic-core/blob/main/LICENSE)
This package provides the core functionality for [pydantic](https://docs.pydantic.dev) validation and serialization.
Pydantic-core is currently around 17x faster than pydantic V1.
See [`tests/benchmarks/`](./tests/benchmarks/) for details.
## Example of direct usage
_NOTE: You should not need to use pydantic-core directly; instead, use pydantic, which in turn uses pydantic-core._
```py
from pydantic_core import SchemaValidator, ValidationError
v = SchemaValidator(
{
'type': 'typed-dict',
'fields': {
'name': {
'type': 'typed-dict-field',
'schema': {
'type': 'str',
},
},
'age': {
'type': 'typed-dict-field',
'schema': {
'type': 'int',
'ge': 18,
},
},
'is_developer': {
'type': 'typed-dict-field',
'schema': {
'type': 'default',
'schema': {'type': 'bool'},
'default': True,
},
},
},
}
)
r1 = v.validate_python({'name': 'Samuel', 'age': 35})
assert r1 == {'name': 'Samuel', 'age': 35, 'is_developer': True}
# pydantic-core can also validate JSON directly
r2 = v.validate_json('{"name": "Samuel", "age": 35}')
assert r1 == r2
try:
v.validate_python({'name': 'Samuel', 'age': 11})
except ValidationError as e:
print(e)
"""
1 validation error for model
age
Input should be greater than or equal to 18
[type=greater_than_equal, context={ge: 18}, input_value=11, input_type=int]
"""
```
## Getting Started
You'll need rust stable [installed](https://rustup.rs/), or rust nightly if you want to generate accurate coverage.
With rust and python 3.8+ installed, compiling pydantic-core should be possible with roughly the following:
```bash
# clone this repo or your fork
git clone git@github.com:pydantic/pydantic-core.git
cd pydantic-core
# create a new virtual env
python3 -m venv env
source env/bin/activate
# install dependencies and install pydantic-core
make install
```
That should be it, the example shown above should now run.
You might find it useful to look at [`python/pydantic_core/_pydantic_core.pyi`](./python/pydantic_core/_pydantic_core.pyi) and
[`python/pydantic_core/core_schema.py`](./python/pydantic_core/core_schema.py) for more information on the python API,
beyond that, [`tests/`](./tests) provide a large number of examples of usage.
If you want to contribute to pydantic-core, you'll want to use some other make commands:
* `make build-dev` to build the package during development
* `make build-prod` to perform an optimised build for benchmarking
* `make test` to run the tests
* `make testcov` to run the tests and generate a coverage report
* `make lint` to run the linter
* `make format` to format python and rust code
* `make` to run `format build-dev lint test`
## Profiling
It's possible to profile the code using the [`flamegraph` utility from `flamegraph-rs`](https://github.com/flamegraph-rs/flamegraph). (Tested on Linux.) You can install this with `cargo install flamegraph`.
Run `make build-profiling` to install a release build with debugging symbols included (needed for profiling).
Once that is built, you can profile pytest benchmarks with (e.g.):
```bash
flamegraph -- pytest tests/benchmarks/test_micro_benchmarks.py -k test_list_of_ints_core_py --benchmark-enable
```
The `flamegraph` command will produce an interactive SVG at `flamegraph.svg`.
## Releasing
1. Bump package version locally. Do not just edit `Cargo.toml` on Github, you need both `Cargo.toml` and `Cargo.lock` to be updated.
2. Make a PR for the version bump and merge it.
3. Go to https://github.com/pydantic/pydantic-core/releases and click "Draft a new release"
4. In the "Choose a tag" dropdown enter the new tag `v<the.new.version>` and select "Create new tag on publish" when the option appears.
5. Enter the release title in the form "v<the.new.version> <YYYY-MM-DD>"
6. Click Generate release notes button
7. Click Publish release
8. Go to https://github.com/pydantic/pydantic-core/actions and ensure that all build for release are done successfully.
9. Go to https://pypi.org/project/pydantic-core/ and ensure that the latest release is published.
10. Done 🎉

View File

@@ -0,0 +1,66 @@
Metadata-Version: 2.1
Name: wheel
Version: 0.44.0
Summary: A built-package format for Python
Keywords: wheel,packaging
Author-email: Daniel Holth <dholth@fastmail.fm>
Maintainer-email: Alex Grönholm <alex.gronholm@nextday.fi>
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: System :: Archiving :: Packaging
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: pytest >= 6.0.0 ; extra == "test"
Requires-Dist: setuptools >= 65 ; extra == "test"
Project-URL: Changelog, https://wheel.readthedocs.io/en/stable/news.html
Project-URL: Documentation, https://wheel.readthedocs.io/
Project-URL: Issue Tracker, https://github.com/pypa/wheel/issues
Project-URL: Source, https://github.com/pypa/wheel
Provides-Extra: test
wheel
=====
This is a command line tool for manipulating Python wheel files, as defined in
`PEP 427`_. It contains the following functionality:
* Convert ``.egg`` archives into ``.whl``
* Unpack wheel archives
* Repack wheel archives
* Add or remove tags in existing wheel archives
.. _PEP 427: https://www.python.org/dev/peps/pep-0427/
Historical note
---------------
This project used to contain the implementation of the setuptools_ ``bdist_wheel``
command, but as of setuptools v70.1, it no longer needs ``wheel`` installed for that to
work. Thus, you should install this **only** if you intend to use the ``wheel`` command
line tool!
.. _setuptools: https://pypi.org/project/setuptools/
Documentation
-------------
The documentation_ can be found on Read The Docs.
.. _documentation: https://wheel.readthedocs.io/
Code of Conduct
---------------
Everyone interacting in the wheel project's codebases, issue trackers, chat
rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_.
.. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md

View File

@@ -0,0 +1,30 @@
Metadata-Version: 2.1
Name: pre_commit
Version: 4.1.0
Summary: A framework for managing and maintaining multi-language pre-commit hooks.
Home-page: https://github.com/pre-commit/pre-commit
Author: Anthony Sottile
Author-email: asottile@umich.edu
License: MIT
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cfgv>=2.0.0
Requires-Dist: identify>=1.0.0
Requires-Dist: nodeenv>=0.11.1
Requires-Dist: pyyaml>=5.1
Requires-Dist: virtualenv>=20.10.0
[![build status](https://github.com/pre-commit/pre-commit/actions/workflows/main.yml/badge.svg)](https://github.com/pre-commit/pre-commit/actions/workflows/main.yml)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/pre-commit/pre-commit/main.svg)](https://results.pre-commit.ci/latest/github/pre-commit/pre-commit/main)
## pre-commit
A framework for managing and maintaining multi-language pre-commit hooks.
For more information see: https://pre-commit.com/

View File

@@ -0,0 +1,155 @@
Metadata-Version: 2.1
Name: identify
Version: 2.6.2
Summary: File identification library for Python
Home-page: https://github.com/pre-commit/identify
Author: Chris Kuehl
Author-email: ckuehl@ocf.berkeley.edu
License: MIT
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: license
Requires-Dist: ukkonen; extra == "license"
[![build status](https://github.com/pre-commit/identify/actions/workflows/main.yml/badge.svg)](https://github.com/pre-commit/identify/actions/workflows/main.yml)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/pre-commit/identify/main.svg)](https://results.pre-commit.ci/latest/github/pre-commit/identify/main)
identify
========
File identification library for Python.
Given a file (or some information about a file), return a set of standardized
tags identifying what the file is.
## Installation
```bash
pip install identify
```
## Usage
### With a file on disk
If you have an actual file on disk, you can get the most information possible
(a superset of all other methods):
```python
>>> from identify import identify
>>> identify.tags_from_path('/path/to/file.py')
{'file', 'text', 'python', 'non-executable'}
>>> identify.tags_from_path('/path/to/file-with-shebang')
{'file', 'text', 'shell', 'bash', 'executable'}
>>> identify.tags_from_path('/bin/bash')
{'file', 'binary', 'executable'}
>>> identify.tags_from_path('/path/to/directory')
{'directory'}
>>> identify.tags_from_path('/path/to/symlink')
{'symlink'}
```
When using a file on disk, the checks performed are:
* File type (file, symlink, directory, socket)
* Mode (is it executable?)
* File name (mostly based on extension)
* If executable, the shebang is read and the interpreter interpreted
### If you only have the filename
```python
>>> identify.tags_from_filename('file.py')
{'text', 'python'}
```
### If you only have the interpreter
```python
>>> identify.tags_from_interpreter('python3.5')
{'python', 'python3'}
>>> identify.tags_from_interpreter('bash')
{'shell', 'bash'}
>>> identify.tags_from_interpreter('some-unrecognized-thing')
set()
```
### As a cli
```
$ identify-cli --help
usage: identify-cli [-h] [--filename-only] path
positional arguments:
path
optional arguments:
-h, --help show this help message and exit
--filename-only
```
```console
$ identify-cli setup.py; echo $?
["file", "non-executable", "python", "text"]
0
$ identify-cli setup.py --filename-only; echo $?
["python", "text"]
0
$ identify-cli wat.wat; echo $?
wat.wat does not exist.
1
$ identify-cli wat.wat --filename-only; echo $?
1
```
### Identifying LICENSE files
`identify` also has an api for determining what type of license is contained
in a file. This routine is roughly based on the approaches used by
[licensee] (the ruby gem that github uses to figure out the license for a
repo).
The approach that `identify` uses is as follows:
1. Strip the copyright line
2. Normalize all whitespace
3. Return any exact matches
4. Return the closest by edit distance (where edit distance < 5%)
To use the api, install via `pip install identify[license]`
```pycon
>>> from identify import identify
>>> identify.license_id('LICENSE')
'MIT'
```
The return value of the `license_id` function is an [SPDX] id. Currently
licenses are sourced from [choosealicense.com].
[licensee]: https://github.com/benbalter/licensee
[SPDX]: https://spdx.org/licenses/
[choosealicense.com]: https://github.com/github/choosealicense.com
## How it works
A call to `tags_from_path` does this:
1. What is the type: file, symlink, directory? If it's not file, stop here.
2. Is it executable? Add the appropriate tag.
3. Do we recognize the file extension? If so, add the appropriate tags, stop
here. These tags would include binary/text.
4. Peek at the first X bytes of the file. Use these to determine whether it is
binary or text, add the appropriate tag.
5. If identified as text above, try to read and interpret the shebang, and add
appropriate tags.
By design, this means we don't need to partially read files where we recognize
the file extension.

View File

@@ -0,0 +1,117 @@
Metadata-Version: 2.1
Name: idf-build-apps
Version: 2.5.1
Summary: Tools for building ESP-IDF related apps.
Author-email: Fu Hanxi <fuhanxi@espressif.com>
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: pyparsing
Requires-Dist: pyyaml
Requires-Dist: packaging
Requires-Dist: toml; python_version < '3.11'
Requires-Dist: pydantic~=2.0
Requires-Dist: pydantic_settings
Requires-Dist: argcomplete>=3
Requires-Dist: typing-extensions; python_version < '3.11'
Requires-Dist: sphinx ; extra == "doc"
Requires-Dist: sphinx-rtd-theme ; extra == "doc"
Requires-Dist: sphinx_copybutton ; extra == "doc"
Requires-Dist: myst-parser ; extra == "doc"
Requires-Dist: sphinxcontrib-mermaid ; extra == "doc"
Requires-Dist: sphinx-argparse ; extra == "doc"
Requires-Dist: pytest ; extra == "test"
Requires-Dist: pytest-cov ; extra == "test"
Project-URL: changelog, https://github.com/espressif/idf-build-apps/blob/master/CHANGELOG.md
Project-URL: documentation, https://docs.espressif.com/projects/idf-build-apps
Project-URL: homepage, https://github.com/espressif/idf-build-apps
Project-URL: repository, https://github.com/espressif/idf-build-apps
Provides-Extra: doc
Provides-Extra: test
# idf-build-apps
[![Documentation Status](https://readthedocs.com/projects/espressif-idf-build-apps/badge/?version=latest)](https://espressif-docs.readthedocs-hosted.com/projects/idf-build-apps/en/latest/)
[![pypi_package_version](https://img.shields.io/pypi/v/idf-build-apps)](https://pypi.org/project/idf_build_apps/)
[![supported_python_versions](https://img.shields.io/pypi/pyversions/idf-build-apps)](https://pypi.org/project/idf_build_apps/)
`idf-build-apps` is a tool that helps users find and build [ESP-IDF][esp-idf], and [ESP8266 RTOS][esp8266-rtos] projects in a large scale.
## What is an `app`?
A project using [ESP-IDF][esp-idf] SDK, or [ESP8266 RTOS][esp8266-rtos] SDK typically contains:
- Build recipe in CMake or Make and the main component with app sources
- (Optional) One or more [sdkconfig][sdkconfig] files
`app` is the abbreviation for application. An application is a set of binary files that is being built with the specified [sdkconfig][sdkconfig] and the target chip. `idf-build-apps` could build one project into a number of applications according to the matrix of these two parameters.
## Installation
```shell
pip install idf-build-apps
```
or `pipx`
```shell
pipx install idf-build-apps
```
## Basic Usage
`idf-build-apps` is a python package that could be used as a library or a CLI tool.
As a CLI tool, it contains three sub-commands.
- `find` to find the buildable applications
- `build` to build the found applications
- `completions` to activate autocompletions or print instructions for manual activation
For detailed explanation to all CLI options, you may run
```shell
idf-build-apps -h
idf-build-apps find -h
idf-build-apps build -h
idf-build-apps completions -h
```
As a library, you may check the [API documentation][api-doc] for more information. Overall it provides
- Two functions, `find_apps` and `build_apps`
- Two classes, `CMakeApp` and `MakeApp`
## Quick CLI Example
To build [ESP-IDF hello world example project][hello-world] with ESP32:
```shell
idf-build-apps build -p $IDF_PATH/examples/get-started/hello_world/ --target esp32
```
The binary files will be generated under `$IDF_PATH/examples/get-started/hello_world/build` directory.
## Documentation
For detailed information, please refer to [our documentation site][doc]!
## Contributing
Thanks for your contribution! Please refer to our [Contributing Guide](CONTRIBUTING.md)
[esp-idf]: https://github.com/espressif/esp-idf
[esp8266-rtos]: https://github.com/espressif/ESP8266_RTOS_SDK
[sdkconfig]: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/kconfig.html
[hello-world]: https://github.com/espressif/esp-idf/tree/master/examples/get-started/hello_world
[supported-targets]: https://github.com/espressif/esp-idf/tree/v5.0#esp-idf-release-and-soc-compatibility
[doc]: https://docs.espressif.com/projects/idf-build-apps/en/latest/
[api-doc]: https://docs.espressif.com/projects/idf-build-apps/en/latest/references/api/modules.html

View File

@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<meta name="pypi:repository-version" content="1.0">
<title>Simple index</title>
</head>
<body>
<a href="/pypi/annotated-types/annotated_types-0.6.0-py3-none-any.whl">annotated_types-0.6.0-py3-none-any.whl</a><br/>
<a href="/pypi/annotated-types/annotated_types-0.7.0-py3-none-any.whl">annotated_types-0.7.0-py3-none-any.whl</a><br/>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More