feat: add psagentai agent with deployment and configuration
Initial project setup including the main agent script, configuration files, profile JSON state, systemd service unit, startup script, deployment documentation, and Python dependencies. Includes .env, venv/, and __pycache__/ which should likely be excluded via .gitignore to avoid committing secrets and artifacts.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
pip
|
||||
@@ -0,0 +1,171 @@
|
||||
Metadata-Version: 2.4
|
||||
Name: pydantic_core
|
||||
Version: 2.50.1
|
||||
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.10
|
||||
Classifier: Programming Language :: Python :: 3.11
|
||||
Classifier: Programming Language :: Python :: 3.12
|
||||
Classifier: Programming Language :: Python :: 3.13
|
||||
Classifier: Programming Language :: Python :: 3.14
|
||||
Classifier: Programming Language :: Python :: Implementation :: CPython
|
||||
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
||||
Classifier: Programming Language :: Python :: Implementation :: GraalPy
|
||||
Classifier: Programming Language :: Rust
|
||||
Classifier: Framework :: Pydantic
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: Intended Audience :: Information Technology
|
||||
Classifier: Operating System :: POSIX :: Linux
|
||||
Classifier: Operating System :: Microsoft :: Windows
|
||||
Classifier: Operating System :: MacOS
|
||||
Classifier: Typing :: Typed
|
||||
Requires-Dist: typing-extensions>=4.16.0
|
||||
License-File: LICENSE
|
||||
Summary: Core functionality for Pydantic validation and serialization
|
||||
Home-Page: https://github.com/pydantic/pydantic
|
||||
Author-email: Samuel Colvin <s@muelcolvin.com>, Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com>, David Montague <david@pydantic.dev>, David Hewitt <mail@davidhewitt.dev>, Sydney Runkle <sydneymarierunkle@gmail.com>, Victorien Plot <contact@vctrn.dev>
|
||||
License-Expression: MIT
|
||||
Requires-Python: >=3.10
|
||||
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
||||
Project-URL: Funding, https://github.com/sponsors/samuelcolvin
|
||||
Project-URL: Homepage, https://github.com/pydantic
|
||||
Project-URL: Source, https://github.com/pydantic/pydantic/tree/main/pydantic-core
|
||||
|
||||
# pydantic-core
|
||||
|
||||
[](https://github.com/pydantic/pydantic-core/actions?query=event%3Apush+branch%3Amain+workflow%3Aci)
|
||||
[](https://codecov.io/gh/pydantic/pydantic-core)
|
||||
[](https://pypi.python.org/pypi/pydantic-core)
|
||||
[](https://github.com/pydantic/pydantic-core)
|
||||
[](https://github.com/pydantic/pydantic-core/blob/main/LICENSE)
|
||||
|
||||
This package provides the core functionality for [pydantic](https://pydantic.dev/docs/validation/latest/get-started/) 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
|
||||
|
||||
### Prerequisites
|
||||
|
||||
You'll need:
|
||||
|
||||
1. **[Rust](https://rustup.rs/)** - Rust stable (or nightly for coverage)
|
||||
2. **[uv](https://docs.astral.sh/uv/getting-started/installation/)** - Fast Python package manager
|
||||
3. **[git](https://git-scm.com/)** - For version control
|
||||
4. **[make](https://www.gnu.org/software/make/)** - For running development commands (or use `nmake` on Windows)
|
||||
|
||||
### Quick Start
|
||||
|
||||
```bash
|
||||
# Clone the repository (or from your fork)
|
||||
git clone git@github.com:pydantic/pydantic-core.git
|
||||
cd pydantic-core
|
||||
|
||||
# Install all dependencies using uv, setup pre-commit hooks, and build the development version
|
||||
make install
|
||||
```
|
||||
|
||||
Verify your installation by running:
|
||||
|
||||
```bash
|
||||
make
|
||||
```
|
||||
|
||||
This runs a full development cycle: formatting, building, linting, and testing
|
||||
|
||||
### Development Commands
|
||||
|
||||
Run `make help` to see all available commands, or use these common ones:
|
||||
|
||||
```bash
|
||||
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 all # to run to run build-dev + format + lint + test
|
||||
```
|
||||
|
||||
### Useful Resources
|
||||
|
||||
* [`python/pydantic_core/_pydantic_core/`](./python/pydantic_core/_pydantic_core/) - Python API types (stubs)
|
||||
* [`python/pydantic_core/core_schema.py`](./python/pydantic_core/core_schema.py) - Core schema definitions
|
||||
* [`tests/`](./tests) - Comprehensive usage examples
|
||||
|
||||
## 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
|
||||
|
||||
TBC (needs to be integrated into `pydantic` repository release process).
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
pydantic_core-2.50.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||
pydantic_core-2.50.1.dist-info/METADATA,sha256=rmgXdktgP6IwDNMblWbswzR230YWPEFQ__w1MSGhZvI,6515
|
||||
pydantic_core-2.50.1.dist-info/RECORD,,
|
||||
pydantic_core-2.50.1.dist-info/WHEEL,sha256=fa6q9ONJpiXN50bbDi8VK_U00V8kPYGclfdTTgvG5iw,147
|
||||
pydantic_core-2.50.1.dist-info/licenses/LICENSE,sha256=Kv3TDVS01itvSIprzBVG6E7FBh8T9CCcA9ASNIeDeVo,1080
|
||||
pydantic_core-2.50.1.dist-info/sboms/pydantic-core.cyclonedx.json,sha256=8Jsd1xDxOFjJ0WOZrPYDLzVyPXJXhslp1lt4eKF6C9U,121146
|
||||
pydantic_core/__init__.py,sha256=WRDCuQL8lGL_V3wpjv8PzuuLC96ocR4TifI-EQcwRhA,5861
|
||||
pydantic_core/__pycache__/__init__.cpython-311.pyc,,
|
||||
pydantic_core/__pycache__/core_schema.cpython-311.pyc,,
|
||||
pydantic_core/_pydantic_core.cpython-311-x86_64-linux-gnu.so,sha256=63E3ekUEY3SG6yjcUG6EN2zaPsfJWpJEiGglxtUdi14,4833672
|
||||
pydantic_core/_pydantic_core/__init__.pyi,sha256=i6UetCw5AjxzpJgQ6fwmAelJCwoswJiBAjxk70Vk23I,48350
|
||||
pydantic_core/_pydantic_core/_schema_gather.pyi,sha256=kDgxwCRNOcANrp1ugj1lyG5BH6iRbYigw9nIqtxxTLA,1645
|
||||
pydantic_core/core_schema.py,sha256=5-RgW7GXgbcv7kWZXXHailYLz8pl2L7RurVwn7oA-Tw,175822
|
||||
pydantic_core/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
@@ -0,0 +1,5 @@
|
||||
Wheel-Version: 1.0
|
||||
Generator: maturin (1.15.0)
|
||||
Root-Is-Purelib: false
|
||||
Tag: cp311-cp311-manylinux_2_17_x86_64
|
||||
Tag: cp311-cp311-manylinux2014_x86_64
|
||||
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2022 Samuel Colvin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
+3830
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user