heurist-api 0.1.3__tar.gz → 0.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of heurist-api might be problematic. Click here for more details.
- {heurist_api-0.1.3 → heurist_api-0.1.4}/PKG-INFO +15 -1
- {heurist_api-0.1.3 → heurist_api-0.1.4}/README.md +17 -3
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/index.md +3 -6
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/usage/index.md +4 -7
- {heurist_api-0.1.3 → heurist_api-0.1.4}/mkdocs.yml +1 -1
- {heurist_api-0.1.3 → heurist_api-0.1.4}/pyproject.toml +2 -2
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/database/database.py +2 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/.github/workflows/pypi-release.yml +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/.github/workflows/python-package.yml +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/.gitignore +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/.pre-commit-config.yaml +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/LICENSE +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/demos/pandas_dataframe.ipynb +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/assets/coverage-badge.svg +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/assets/erc-logo.png +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/assets/heurist-admin-panel-users.png +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/assets/logo-transparent-1.png +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/assets/logo-transparent.png +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/assets/logo.png +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/assets/tests-badge.svg +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/development/code_of_conduct.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/development/contributing.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/development/coverage.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/development/heuristdb/temporal.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/development/publishing.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/legal.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/usage/download/date_validation.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/usage/download/export_csv.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/usage/download/group_types.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/usage/download/index.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/usage/download/logs.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/usage/download/user_filter.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/usage/module.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/usage/records.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/usage/rstudio.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/docs/usage/schema.md +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/api/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/api/client.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/api/connection.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/api/constants.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/api/credentials.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/api/exceptions.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/api/url_builder.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/api/utils.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/cli/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/cli/__main__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/cli/load.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/cli/records.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/cli/schema.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/database/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/database/basedb.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/dynamic/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/dynamic/annotation.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/dynamic/create_model.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/dynamic/date.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/dynamic/type.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/structural/DetailTypes.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/structural/RecStructure.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/structural/RecTypeGroups.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/structural/RecTypes.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/structural/Terms.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/structural/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/structural/dty.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/structural/hml_structure.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/structural/rst.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/structural/rtg.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/structural/rty.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/structural/trm.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/models/structural/utils.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/schema/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/schema/models.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/schema/rel_to_dict.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/sql/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/sql/joinRecordTypeIDNameByGroupType.sql +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/sql/joinRecordTypeMetadata.sql +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/sql/selectRecordTypeSchema.sql +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/sql/sql_safety.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/utils/constants.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/utils/rel_to_dict_array.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/validators/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/validators/detail_validator.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/validators/exceptions.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/validators/parse_heurist_date.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/validators/record_validator.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/workflows/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/heurist/workflows/etl.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/blocktext/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/blocktext/single.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/date/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/date/compound_repeated.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/date/compound_single.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/date/simple_single.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/date/timestamp_repeated.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/enum/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/enum/repeated.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/enum/single.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/file/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/file/single.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/float/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/float/single.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/freetext/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/freetext/single.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/geo/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/geo/single.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/resource/__init__.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/resource/repeated.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/mock_data/resource/single.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/scripts/gen_badges.sh +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/src/scripts/gen_ref_pages.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/tests/e2e/download_test.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/tests/e2e/schema_test.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/tests/integration/api/client_test.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/tests/integration/api/connection_test.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/tests/unit/database/database_test.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/tests/unit/database/modeling_test.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/tests/unit/database/skeleton_test.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/tests/unit/schema/get_db_schema_test.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/tests/unit/validators/detail_validation_test.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/tests/unit/validators/repeated_enum_test.py +0 -0
- {heurist_api-0.1.3 → heurist_api-0.1.4}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: heurist-api
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Dynamic: Description
|
|
5
5
|
Dynamic: Description-Content-Type
|
|
6
6
|
Summary: API wrapper and CLI for Heurist database.
|
|
@@ -451,3 +451,17 @@ Requires-Dist: python-dotenv>=1.1.0
|
|
|
451
451
|
Requires-Dist: requests>=2.32.3
|
|
452
452
|
Requires-Dist: rich>=14.0.0
|
|
453
453
|
Requires-Dist: tenacity>=9.1.2
|
|
454
|
+
Provides-Extra: dev
|
|
455
|
+
Requires-Dist: coverage>=7.8.0; extra == 'dev'
|
|
456
|
+
Requires-Dist: genbadge[coverage]>=1.1.2; extra == 'dev'
|
|
457
|
+
Requires-Dist: isort>=6.0.1; extra == 'dev'
|
|
458
|
+
Requires-Dist: mkdocs-gen-files>=0.5.0; extra == 'dev'
|
|
459
|
+
Requires-Dist: mkdocs-literate-nav>=0.6.2; extra == 'dev'
|
|
460
|
+
Requires-Dist: mkdocs-material[imaging]>=9.6.14; extra == 'dev'
|
|
461
|
+
Requires-Dist: mkdocs>=1.6.1; extra == 'dev'
|
|
462
|
+
Requires-Dist: mkdocstrings-python>=1.16.10; extra == 'dev'
|
|
463
|
+
Requires-Dist: pre-commit>=4.2.0; extra == 'dev'
|
|
464
|
+
Requires-Dist: pymdown-extensions>=10.15; extra == 'dev'
|
|
465
|
+
Requires-Dist: pytest>=8.3.5; extra == 'dev'
|
|
466
|
+
Requires-Dist: ruff>=0.11.10; extra == 'dev'
|
|
467
|
+
Requires-Dist: uv>=0.7.5; extra == 'dev'
|
|
@@ -8,11 +8,25 @@
|
|
|
8
8
|
|
|
9
9
|
Extract, transform, and load data from your Heurist database into local formats. Great for freeing up your data analysis pipeline!
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Quick Start
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Install (Python version +3.10) with pip.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
```shell
|
|
16
|
+
pip install heurist-api
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Download your record types in a [DuckDB](https://duckdb.org/) database file.
|
|
20
|
+
|
|
21
|
+
```shell
|
|
22
|
+
heurist -d 'YOUR.DATABASE' -u 'YOUR.LOGIN' -p 'YOUR.PASSWORD' download -f 'FILE.DB'
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Full Documentation
|
|
26
|
+
|
|
27
|
+
For detailed information about installation, usage, etc., navigate to the documentation site below:
|
|
28
|
+
|
|
29
|
+
- [Documentation](https://lostma-erc.github.io/heurist-api/)
|
|
16
30
|
|
|
17
31
|
## License
|
|
18
32
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Heurist
|
|
1
|
+
# Heurist API
|
|
2
2
|
|
|
3
3
|
[](https://github.com/LostMa-ERC/heurist-etl-pipeline/actions/workflows/python-package.yml) [](https://creativecommons.org/licenses/by-sa/4.0/)
|
|
4
4
|
[](https://github.com/LostMa-ERC/heurist-etl-pipeline/raw/main/docs/assets/coverage-badge.svg)
|
|
5
5
|
[](https://github.com/LostMa-ERC/heurist-etl-pipeline/raw/main/docs/assets/tests-badge.svg)
|
|
6
6
|
|
|
7
|
-
This Python package Extracts, Transforms, and Loads (ETL) data from a Heurist database server into a local [DuckDB](https://duckdb.org) database file.
|
|
7
|
+
This Python package provides an API wrapper for Heurist as well as a command-line interface (CLI) that Extracts, Transforms, and Loads (ETL) data from a Heurist database server into a local [DuckDB](https://duckdb.org) database file.
|
|
8
8
|
|
|
9
9
|
- [Installation & configuration](usage/index.md#installation)
|
|
10
10
|
- [Basic command-line usage](usage/index.md#cli-commands)
|
|
@@ -14,10 +14,7 @@ This Python package Extracts, Transforms, and Loads (ETL) data from a Heurist da
|
|
|
14
14
|
[](https://github.com/LostMa-ERC/heurist-etl-pipeline/raw/main/docs/assets/logo-transparent-1.png)
|
|
15
15
|
|
|
16
16
|
```shell
|
|
17
|
-
$ pip install
|
|
18
|
-
--index-url https://test.pypi.org/simple/ \
|
|
19
|
-
--extra-index-url https://pypi.org/simple \
|
|
20
|
-
heurist
|
|
17
|
+
$ pip install heurist-api
|
|
21
18
|
```
|
|
22
19
|
|
|
23
20
|
## Commands
|
|
@@ -9,7 +9,7 @@ Secondarily, you can also exploit certain modules, such as the API client, for y
|
|
|
9
9
|
### Requirements
|
|
10
10
|
|
|
11
11
|
- Python version 3.10 or greater
|
|
12
|
-
-
|
|
12
|
+
- A way to manage your virtual Python environment, i.e. [`pyenv`](https://github.com/pyenv/pyenv?tab=readme-ov-file#installation).
|
|
13
13
|
|
|
14
14
|
### Steps
|
|
15
15
|
|
|
@@ -17,14 +17,11 @@ Secondarily, you can also exploit certain modules, such as the API client, for y
|
|
|
17
17
|
- Need help installing Python? Check out the [Real Python](https://realpython.com/installing-python/) blog's tutorial.
|
|
18
18
|
2. Create a new virtual environment for the package. Then activate it.
|
|
19
19
|
- What's the simplest way? Check out [Real Python](https://realpython.com/python-virtual-environments-a-primer/)'s thorough blog post.
|
|
20
|
-
- I recommend naming the environment `heurist`.
|
|
21
|
-
3. Use `pip install` to install the `heurist` Python package.
|
|
20
|
+
- I recommend naming the environment `heurist-api`.
|
|
21
|
+
3. Use `pip install` to install the `heurist-api` Python package.
|
|
22
22
|
|
|
23
23
|
```console
|
|
24
|
-
$ pip install
|
|
25
|
-
--index-url https://test.pypi.org/simple/ \
|
|
26
|
-
--extra-index-url https://pypi.org/simple \
|
|
27
|
-
heurist
|
|
24
|
+
$ pip install heurist-api
|
|
28
25
|
```
|
|
29
26
|
|
|
30
27
|
## Configure the CLI
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "heurist-api"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.4"
|
|
4
4
|
description = "API wrapper and CLI for Heurist database."
|
|
5
5
|
keywords = [ "duckdb", "etl" ]
|
|
6
6
|
dynamic = [ "readme" ]
|
|
@@ -37,7 +37,7 @@ build-backend = "hatchling.build"
|
|
|
37
37
|
[tool.hatch.build.targets.wheel]
|
|
38
38
|
packages = ["src/heurist", "src/mock_data"]
|
|
39
39
|
|
|
40
|
-
[
|
|
40
|
+
[project.optional-dependencies]
|
|
41
41
|
dev = [
|
|
42
42
|
"coverage>=7.8.0",
|
|
43
43
|
"genbadge[coverage]>=1.1.2",
|
|
@@ -20,6 +20,8 @@ class TransformedDatabase(HeuristDatabase):
|
|
|
20
20
|
) -> None:
|
|
21
21
|
super().__init__(hml_xml, conn, db)
|
|
22
22
|
|
|
23
|
+
self.conn.execute("SET GLOBAL pandas_analyze_sample=100000")
|
|
24
|
+
|
|
23
25
|
# Create an empty index of targeted record types' Pydantic models
|
|
24
26
|
self.pydantic_models = {}
|
|
25
27
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|