Metadata-Version: 2.4
Name: euvd
Version: 1.0.0a1
Author: Jesús Alonso Abad
License-Expression: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: cvss~=3.4
Requires-Dist: httpx~=0.28
Requires-Dist: pydantic~=2.11
Provides-Extra: test
Requires-Dist: mypy~=1.8; extra == 'test'
Requires-Dist: pylint~=3.0; extra == 'test'
Description-Content-Type: text/markdown

# EUVD - European Union Vulnerabilities Database python wrapper

This library provides a Python wrapper for the EUVD API, offering a streamlined and consistent way to interact with the service. It is particularly useful for integrating the service into other applications.

## Installation

The library can be installed using `pip`:

```bash
pip install euvd
```

## Usage

### Clients

The `euvd.clients` module provides Python clients for interacting with the European Union Vulnerabilities Database (EUVD) API. These clients offer methods for retrieving vulnerabilities, advisories, and performing tailored searches with filters.

#### Synchronous Client

```python
from euvd.clients import EUVDSyncClient
from euvd.models import EnisaVulnerability

with EUVDSyncClient() as client:
    vulnerabilities: list[EnisaVulnerability] = client.get_latest_vulnerabilities()
    print(vulnerabilities)
```

#### Asynchronous Client

```python
import asyncio
from euvd.clients import EUVDAsyncClient
from euvd.models import EnisaVulnerability

async def main():
    async with EUVDAsyncClient() as client:
        vulnerabilities: list[EnisaVulnerability] = await client.get_latest_vulnerabilities()
        print(vulnerabilities)

asyncio.run(main())
```

### Data models

The library provides a `euvd.models` package with several classes to encapsulate the different data structures used by the API.

## Official documentation

Refer to the official documentation for detailed information about the methods and their parameters.

## Disclaimer

This is beta software, not recommended yet for production use.

As the actual EUVD API is in beta stage and prone to change, this library may stop working without warning.

Also, as there is no official documentation on the data structures used, the model structures and semantics were reverse-engineered and may contain errors.

## License

This library is licensed under the MIT License.
