Package: yajaw
YAJAW - Yet Another Jira API WrapperYAJAW is an intuitive Python library designed to simplify interactions with Atlassian's JIRA APIs. Aimed at developers, data analysts, and project managers, Yajaw facilitates seamless integration of JIRA's extensive API offerings into your Python projects with ease of use, concurrency support, and efficient handling of paginated resources.FeaturesFunctional Paradigm: Designed with a preference for functional programming to handle data-centric operations efficiently.Concurrent Pagination: Handles paginated resources concurrently, speeding up data retrieval.Ease of Access: Interact with both supported and unsupported JIRA REST APIs.Simple Configuration: Easy setup with a TOML configuration file.Dual Support: Supports both synchronous and asynchronous programming styles.QuickstartInstallationEnsure you have Python 3.11 or later before installing Yajaw. The package can be installed viapipusing the following command:pipinstallyajawConfigurationYajaw requires a dedicated configuration directory named.yajaw, located in your home directory. To ascertain the path to your home directory, run this Python script:frompathlibimportPathprint(Path.home())Should the.yajawdirectory be absent, Yajaw will automatically create it and the necessary configuration files on first run. You are still responsible for providing your specific JIRA instance settings.To configure, navigate to your home directory, open the.yajawfolder, and edit theyajaw.tomlfile. It contains default settings that you'll need to modify:[jira]token="YOUR_PERSONAL_ACCESS_TOKEN"base_url="https://your-jira-domain.com"server_api_v2="rest/api/2"agile_api_v1="rest/agile/1.0"greenhopper_api="rest/greenhopper/1.0"[retries]tries=10delay=0.0backoff=2.0[requests]timeout=60[concurrency]semaphore_limit=50[pagination]page_results=40Adjust thetokenandbase_urlwith the correct values for your JIRA environment. If necessary, these adjustments can also be executed programmatically using theyajaw.configurationmodule. For further instructions, refer to theUser Guide.Basic UsageThe fundamental use of Yajaw involves importing theyajaw.jiramodule and calling one of its functions. For example:fromyajawimportjiraprojects=jira.fetch_all_projects()# Displays <class 'list'>print(type(projects))# Displays the type of each accessed project, which is <class 'dict'>print(*[type(project)forprojectinprojects],sep="\t")# Ensure to replace "ABC" with a valid project keyproject=jira.fetch_project(project_key="ABC")# Displays <class 'dict'>print(type(project))An asynchronous code example for fetching projects can be written as follows:importasynciofromyajawimportjiraasyncdefmain():projects=awaitjira.async_fetch_all_projects()# Displays <class 'list'>print(type(projects))# Displays the type of each accessed project, which is <class 'dict'>print(*[type(project)forprojectinprojects],sep="\t")# Ensure to replace "ABC" with a valid project keyproject=awaitjira.async_fetch_project(project_key="ABC")# Displays <class 'dict'>print(f"Type:{type(project)}")asyncio.run(main())DocumentationFor more in-depth examples and usage instructions, visit theofficial YAJAW documentation.IssuesIf you encounter any issues or have suggestions for the project, please use theGitHub Issuespage.ContributingContributions are welcome! For more information on how to contribute, please refer to our contribution guidelines outlined in the documentation.LicenseYAJAW is distributed under the MIT License. SeeLICENSEfor more details.LinksDocumentation:https://yajaw.readthedocs.io/Source Code:https://github.com/rmrighes/yajawIssues:https://github.com/unknown/rmrighes/issues