# Welcome to **CLI mit Wuff und Wau**, a command-line tool designed to explore Zürich's open dog data in a fun and engaging way! This tool allows you to:
## Project Overview
This project is a Command-Line Interface (CLI) tool designed to interact with Zurich's public dog registry. It allows users to:
* **Search for Dogs by Name** : Retrieve information about dogs registered under a specific name.
* **Analyze Dog Data** : Generate insightful statistics, such as the most common dog names, gender distribution, and name lengths.
* **Create Random Dogs** : Simulate a new dog profile with attributes derived from the registry, including a downloadable media file.
The tool utilizes Python and integrates various libraries like `Click`, `Rich`, `UV`, `Pillow` and `Requests` to provide a user-friendly experience.
- Search for dogs by name and check for substrings in the names.
- Get statistics on dog names, dog name trends, and gender distributions.
- Generate a fictional new dog with a name, birth year, and a cute picture.
## Key Features
* **Dynamic Data Fetching** : Retrieves data directly from the Zurich Open Data API.
* **Flexible Year Filtering** : Filters registry data by a specified year or aggregates data across all available years.
* **Random Dog Profile Creation** : Combines registry data with a media file from an external API to create unique dog profiles.
* **Interactive CLI Design** : Implements `Click` for intuitive command definitions and user interactions.
* **Enhanced Display** : Uses `Rich` to render output in aesthetically pleasing tables.
## AI Tools Usage Declaration
During the development of this project, AI tools were used as follows:
**ChatGPT** :
* Used to assist in generating code snippets, structuring functions, and brainstorming solutions to align with the project requirements.
* Provided support in adhering Python best practices during architectural planning and refactoring.
* Suggested approaches for handling edge cases and improving user experience in the CLI design.
* Its outputs were critically reviewed and significantly modified to suit the project's unique requirements and constraints.
## Personal Contributions
While AI tools were used as supplementary aids, I was heavily involved in all decision-making processes and core aspects of the project, including:
* Designing the overall architecture and ensuring it adhered to best practices and SOLID principles.
* Writing and refining the main functionality of the CLI tool:
* Search for dogs using specific criteria.
* Analyze and display statistical data about the dog registry.
* Generate randomized dog profiles.
* Wrote code to fetch and filter data dynamically from the Zürich Open Data API.
* Ensuring compliance with project requirements, error handling, and usability considerations.
* Reviewing, manually testing, and optimizing all AI-generated code to meet the quality standards expected in the course.
* Managing the Git repository, ensuring proper commit history.
## Transparency and Compliance
This declaration ensures transparency regarding AI tool usage and compliance with the **OST Examination and Study Regulations** (Art. 37) and **AI Guidelines** . All AI-generated outputs were critically evaluated, customized, and integrated into the project.
## **Installation**
1. Clone the repository to your local machine.
2. Install dependencies using ???.
3. Run the CLI using the commands described below.
## Commands and Usage
The CLI tool `wuff.py` provides the following commands for interacting with Zürich's dog registry data:
### Global Options
* `--year`, `-y`:
* Filters the data by the specified year in `YYYY` format.
* Use `all` to include data from all years.
* Defaults to the current year.
---
### 1. Find Dogs by Name
```
python wuff.py [--year] find <name>
```
* **Description** : Search for dogs with a given name.
* **Parameters** :
* `<name>`: The name of the dog to search for.
* `--year / -y`: (Optional) Filters results by the specified year or includes all years if `all` is provided. If no year is provided the application displays the data of the current year.
* You will be prompted if you want to search for an exact match or if you want to find all names that include the substring you provide.
* **Example** :
```
python wuff.py -y 2023 find Luna
```
---
### 2. Show Dog Statistics
```
python wuff.py [--year] stats
```
* **Description** : Display statistical data about the dog registry, such as:
* Total dogs.
* Top 10 most common names.
* Longest and shortest names.
* Gender distribution.
* **Parameters** :
* `--year / -y` : (Optional) Filters statistics to a specific year or includes all years if `all` is provided. If no year is provided the application displays the data of the current year.
* **Example** :
```
python wuff.py --year 2022 stats
```
---
### 3. Create a Random Dog Profile
```
python wuff.py [--year] create
```
* **Description** : Generate a random dog profile, including:
* Name.
* Birth year.
* Gender.
* Media file (image or video).
* **Parameters** :
* `--output-dir / -o`: (Optional) Specifies the directory to save the media file. Defaults to the current directory.
* **Example** :
```
python wuff.py create --output-dir ./dog_images
```
Raw data
{
"_id": null,
"home_page": null,
"name": "cli-mit-wuff-und-wau",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "CLI, dog registry, statistics, random generation",
"author": null,
"author_email": "Your Name <your.email@example.com>",
"download_url": "https://files.pythonhosted.org/packages/3f/75/91682869fce55cb91ccbd01513e1f85fb8e9684ca540bd774658289c3066/cli_mit_wuff_und_wau-0.1.0.tar.gz",
"platform": null,
"description": "# Welcome to **CLI mit Wuff und Wau**, a command-line tool designed to explore Z\u00fcrich's open dog data in a fun and engaging way! This tool allows you to:\n\n## Project Overview\n\nThis project is a Command-Line Interface (CLI) tool designed to interact with Zurich's public dog registry. It allows users to:\n\n* **Search for Dogs by Name** : Retrieve information about dogs registered under a specific name.\n* **Analyze Dog Data** : Generate insightful statistics, such as the most common dog names, gender distribution, and name lengths.\n* **Create Random Dogs** : Simulate a new dog profile with attributes derived from the registry, including a downloadable media file.\n\nThe tool utilizes Python and integrates various libraries like `Click`, `Rich`, `UV`, `Pillow` and `Requests` to provide a user-friendly experience.\n\n- Search for dogs by name and check for substrings in the names.\n- Get statistics on dog names, dog name trends, and gender distributions.\n- Generate a fictional new dog with a name, birth year, and a cute picture.\n\n## Key Features\n\n* **Dynamic Data Fetching** : Retrieves data directly from the Zurich Open Data API.\n* **Flexible Year Filtering** : Filters registry data by a specified year or aggregates data across all available years.\n* **Random Dog Profile Creation** : Combines registry data with a media file from an external API to create unique dog profiles.\n* **Interactive CLI Design** : Implements `Click` for intuitive command definitions and user interactions.\n* **Enhanced Display** : Uses `Rich` to render output in aesthetically pleasing tables.\n\n## AI Tools Usage Declaration\n\nDuring the development of this project, AI tools were used as follows:\n\n**ChatGPT** :\n\n* Used to assist in generating code snippets, structuring functions, and brainstorming solutions to align with the project requirements.\n* Provided support in adhering Python best practices during architectural planning and refactoring.\n* Suggested approaches for handling edge cases and improving user experience in the CLI design.\n* Its outputs were critically reviewed and significantly modified to suit the project's unique requirements and constraints.\n\n## Personal Contributions\n\nWhile AI tools were used as supplementary aids, I was heavily involved in all decision-making processes and core aspects of the project, including:\n\n* Designing the overall architecture and ensuring it adhered to best practices and SOLID principles.\n* Writing and refining the main functionality of the CLI tool:\n\n * Search for dogs using specific criteria.\n * Analyze and display statistical data about the dog registry.\n * Generate randomized dog profiles.\n * Wrote code to fetch and filter data dynamically from the Z\u00fcrich Open Data API.\n* Ensuring compliance with project requirements, error handling, and usability considerations.\n* Reviewing, manually testing, and optimizing all AI-generated code to meet the quality standards expected in the course.\n* Managing the Git repository, ensuring proper commit history.\n\n## Transparency and Compliance\n\nThis declaration ensures transparency regarding AI tool usage and compliance with the **OST Examination and Study Regulations** (Art. 37) and **AI Guidelines** . All AI-generated outputs were critically evaluated, customized, and integrated into the project.\n\n## **Installation**\n\n1. Clone the repository to your local machine.\n2. Install dependencies using ???.\n3. Run the CLI using the commands described below.\n\n## Commands and Usage\n\nThe CLI tool `wuff.py` provides the following commands for interacting with Z\u00fcrich's dog registry data:\n\n### Global Options\n\n* `--year`, `-y`:\n * Filters the data by the specified year in `YYYY` format.\n * Use `all` to include data from all years.\n * Defaults to the current year.\n\n---\n\n### 1. Find Dogs by Name\n\n```\npython wuff.py [--year] find <name>\n\n```\n\n* **Description** : Search for dogs with a given name.\n* **Parameters** :\n* `<name>`: The name of the dog to search for.\n* `--year / -y`: (Optional) Filters results by the specified year or includes all years if `all` is provided. If no year is provided the application displays the data of the current year.\n* You will be prompted if you want to search for an exact match or if you want to find all names that include the substring you provide.\n* **Example** :\n\n```\npython wuff.py -y 2023 find Luna \n```\n\n---\n\n### 2. Show Dog Statistics\n\n```\npython wuff.py [--year] stats \n```\n\n* **Description** : Display statistical data about the dog registry, such as:\n* Total dogs.\n* Top 10 most common names.\n* Longest and shortest names.\n* Gender distribution.\n* **Parameters** :\n* `--year / -y` : (Optional) Filters statistics to a specific year or includes all years if `all` is provided. If no year is provided the application displays the data of the current year.\n* **Example** :\n\n```\npython wuff.py --year 2022 stats \n```\n\n---\n\n### 3. Create a Random Dog Profile\n\n```\npython wuff.py [--year] create\n```\n\n* **Description** : Generate a random dog profile, including:\n* Name.\n* Birth year.\n* Gender.\n* Media file (image or video).\n* **Parameters** :\n* `--output-dir / -o`: (Optional) Specifies the directory to save the media file. Defaults to the current directory.\n* **Example** :\n\n```\npython wuff.py create --output-dir ./dog_images\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A CLI tool and library for Z\u00fcrich's dog registry analysis and management",
"version": "0.1.0",
"project_urls": null,
"split_keywords": [
"cli",
" dog registry",
" statistics",
" random generation"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3ee2a1232db1c9afff261620e8ca012e7a7a313d269685adc74814ce5bc67815",
"md5": "3cab2a3bd4170c8705f8d5c492b6e366",
"sha256": "7e9d34433d8fe8780e855a1c606444c8ccc159100afc36f0a26f1f070502e901"
},
"downloads": -1,
"filename": "cli_mit_wuff_und_wau-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3cab2a3bd4170c8705f8d5c492b6e366",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 13688,
"upload_time": "2024-12-10T17:59:25",
"upload_time_iso_8601": "2024-12-10T17:59:25.353420Z",
"url": "https://files.pythonhosted.org/packages/3e/e2/a1232db1c9afff261620e8ca012e7a7a313d269685adc74814ce5bc67815/cli_mit_wuff_und_wau-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3f7591682869fce55cb91ccbd01513e1f85fb8e9684ca540bd774658289c3066",
"md5": "8d0b23636afe769ebe0136cf92d1fe2f",
"sha256": "352872170f1c4cf7339c46006d7f711063090b0f7c68db13f7792cb76fa97424"
},
"downloads": -1,
"filename": "cli_mit_wuff_und_wau-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "8d0b23636afe769ebe0136cf92d1fe2f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 12272,
"upload_time": "2024-12-10T17:59:26",
"upload_time_iso_8601": "2024-12-10T17:59:26.867605Z",
"url": "https://files.pythonhosted.org/packages/3f/75/91682869fce55cb91ccbd01513e1f85fb8e9684ca540bd774658289c3066/cli_mit_wuff_und_wau-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-10 17:59:26",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "cli-mit-wuff-und-wau"
}