{"id":34042966,"url":"https://github.com/cointainer/cointainer-scraper-ecb","last_synced_at":"2026-04-06T09:02:02.960Z","repository":{"id":59099735,"uuid":"293655827","full_name":"cointainer/cointainer-scraper-ecb","owner":"cointainer","description":"Cointainer component for scraping coins from the ECB Website.","archived":false,"fork":false,"pushed_at":"2022-12-19T12:38:35.000Z","size":607,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-21T22:03:19.414Z","etag":null,"topics":["coins","collectables","ecb","python","scraper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cointainer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-09-07T23:52:08.000Z","updated_at":"2022-09-16T12:24:21.000Z","dependencies_parsed_at":"2023-01-29T21:31:18.667Z","dependency_job_id":null,"html_url":"https://github.com/cointainer/cointainer-scraper-ecb","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/cointainer/cointainer-scraper-ecb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cointainer%2Fcointainer-scraper-ecb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cointainer%2Fcointainer-scraper-ecb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cointainer%2Fcointainer-scraper-ecb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cointainer%2Fcointainer-scraper-ecb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cointainer","download_url":"https://codeload.github.com/cointainer/cointainer-scraper-ecb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cointainer%2Fcointainer-scraper-ecb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31466228,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T08:36:52.050Z","status":"ssl_error","status_checked_at":"2026-04-06T08:36:51.267Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coins","collectables","ecb","python","scraper"],"created_at":"2025-12-13T22:53:10.370Z","updated_at":"2026-04-06T09:02:02.954Z","avatar_url":"https://github.com/cointainer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/cointainer/scraper-ecb/raw/main/docs/images/Cointainer-Scraper.png\" width=\"100%\" alt=\"Cointainer-Scraper Banner\"\u003e\n\n\u003e Cointainer component for scraping coins from the ECB Website.\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://github.com/psf/black\"\u003e\u003cimg alt=\"Code style: black\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/cointainer/cointainer-scraper-ecb/blob/main/LICENSE\"\u003e\n    \u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/cointainer/\ncointainer-scraper-ecb.svg?color=blue\"\u003e\n\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/cointainer/scraper-ecb\"\u003e\u003cimg src=\"https://img.shields.io/pypi/pyversions/cointainer-scraper-ecb.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"\"\u003e\n  \u003cimg src=\"https://img.shields.io/pypi/v/cointainer-scraper-ecb?color=dar-green\" /\u003e\n\u003c/a\u003e\n\u003c/div\u003e\n\n## Introduction\n\nCointainer Scraper (ECB) is one of the components of the Cointainer. This component offers the functionality of scraping euro coin data from the ECB website.\n\nCurrently supported coins:\n- €2 commemorative coins\n  - Country\n  - Feature\n  - Description\n  - Issuing Volume\n  - Issuing Date\n  - Image URLs\n\n## Installation\n\n```bash\npip install cointainer-scraper-ecb\n```\n\n## Example\n```python\nfrom cointainer_scraper_ecb import get_two_euro_commemorative_coins\n\nget_two_euro_commemorative_coins(\n    language=\"en\",\n    year=2004\n)\n```\n\u003e Tested with Python 3.9.13 and cointainer_scraper_ecb v0.1.3 ✔️\n\nTwo data classes are relevant which are beeing returned by the function:\n```python\ndef get_two_euro_commemorative_coins(\n    lang: str = \"en\",\n    year: int = START_YEAR\n) -\u003e List[TwoEuro]: ...\n```\n\n```python\n@dataclass\nclass Coinage:\n    \"\"\"Represents a coin of a country to be collected.\"\"\"\n\n    country: Optional[str]\n    image_default_url: Optional[str]\n    volume: Optional[int]\n    image_default_url_info: Optional[str] = None\n    country_info: Optional[str] = None\n    circulation_date: Optional[datetime.date] = None\n    image_attribution: Optional[str] = None\n    circulation_date_info: Optional[str] = None\n    volume_info: Optional[str] = None\n\n\n@dataclass\nclass TwoEuro:\n    \"\"\"A two euro coin to collect.\"\"\"\n\n    feature: str = \"\"\n    description: str = \"\"\n    coinages: List[Coinage] = field(default_factory=list)\n```\n\n## Roadmap\n\n- [ ] Implement national side scraping (2€, 1€, 50 cent, 20 cent, 10 cent, 5 cent, 2 cent and 1 cent)\n- [ ] CLI implementation with click\n\n## Development\n\n### Creating a new release\n\n1. Run the following command `poetry version \u003cversion\u003e`\n\u003cbr\u003e*cointainer-scraper-ecb* uses the following schema: `^\\d+\\.\\d+\\.\\d+((b|a)\\d+)?$`\n\n2. Bump the version within the files: \n   - [`cointainer_scraper_ecb/__init__.py`](cointainer_scraper_ecb/__init__.py)\n   - [`tests/test_cointainer_scraper_ecb.py`](tests/test_cointainer_scraper_ecb.py)\n   - [`pyproject.toml`](pyproject.toml)\n\n    *Make sure it's the same version used when bumping with poetry*\n\n3. Open `CHANGELOG.md` and write the new changelog:\n    - Use the following `#` header: `v\u003cversion\u003e - (yyyy-mm-dd)`\n    \u003cbr\u003eUsed `##` headers:\n    - 💌 Added\n    - 🔨 Fixed\n    - ♻️ Changed\n\n4. Stage the modified files and push them with the following commit message:\n    \u003e chore: bump to version `v\u003cversion\u003e`\n\n5. Create annotated release tag\n   1.  New tag\n    ```\n    git tag -s -m \"release v\u003cversion\u003e\" v\u003cversion\u003e\n    ```\n   2. Push created tag\n\n    ```\n    git push --tags\n    ```\n\n6. Run the following command `poetry build` to create a tarball and a wheel based on the new version\n\n7. Create a new github release and:\n    1. Copy and paste the changelog content **without** the `#` header into the *description of the release* textbox\n    2. Use the `#` header style to fill in the *Release title* (copy it from the `CHANGELOG.md`)\n    3. Copy the version with the `v`-prefix into the *Tag version*\n\n4. Attach the produced tarball and wheel (`dist/`) to the release\n\n5. Check *This is a pre-release* if it's either an alpha or beta release *(a|b)* - ***optional*** \n\n6.  **Publish release**\n\n### Testing\n\nUse the following command to execute the tests:\n\n```bash\npoetry run pytest\n```\n\nTo run the tests, the: `download-test-files.(ps1|sh)` script must be executed.\n\nThis is not the best method because the test data can change. However, I don't know if it is allowed to upload the data to the repository because of the copyright.\n\n## License\nThis cointainer-scraper-ecb module is distributed under Apache-2.0. For ODbL-1.0 exception, see [LICENSING.md](https://github.com/cointainer/cointainer-scraper-ecb/blob/main/LICENSING.md)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcointainer%2Fcointainer-scraper-ecb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcointainer%2Fcointainer-scraper-ecb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcointainer%2Fcointainer-scraper-ecb/lists"}