{"id":2889031,"name":"python-pytm","ecosystem":"pypi","description":"PyTM - an Open Source Python Time Management Tool for Mankind","homepage":"https://github.com/wasi0013/PyTM","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/wasi0013/PyTM","keywords_array":["PyTM"],"namespace":null,"versions_count":16,"first_release_published_at":"2018-10-23T18:32:55.000Z","latest_release_published_at":"2023-11-10T18:11:36.000Z","latest_release_number":"0.0.16","last_synced_at":"2026-04-19T09:55:21.909Z","created_at":"2022-04-10T12:21:36.082Z","updated_at":"2026-04-19T11:16:57.020Z","registry_url":"https://pypi.org/project/python-pytm/","install_command":"pip install python-pytm --index-url https://pypi.org/simple","documentation_url":"https://python-pytm.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 2 - Pre-Alpha","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Natural Language :: English","Programming Language :: Python :: 3.12"],"normalized_name":"python-pytm","project_status":null},"repo_metadata":{"id":33180989,"uuid":"154284378","full_name":"wasi0013/PyTM","owner":"wasi0013","description":"A Python :snake: :three: CLI time tracker with invoice generation","archived":false,"fork":false,"pushed_at":"2023-11-10T18:10:55.000Z","size":9353,"stargazers_count":16,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-30T13:41:46.563Z","etag":null,"topics":["billing","cli","click","hacktoberfest","invoice","invoice-generator","python-pytm","python3","python312","rich","time","time-tracker","time-tracking"],"latest_commit_sha":null,"homepage":"https://pytm.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wasi0013.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-23T07:40:47.000Z","updated_at":"2025-07-14T09:43:27.000Z","dependencies_parsed_at":"2023-10-24T04:39:34.890Z","dependency_job_id":"32968c56-1b7e-4826-ba60-3ea5f8dfd48e","html_url":"https://github.com/wasi0013/PyTM","commit_stats":{"total_commits":101,"total_committers":4,"mean_commits":25.25,"dds":"0.37623762376237624","last_synced_commit":"a5f88ffcdc7809190c74c8ece254e9751b09b1c7"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/wasi0013/PyTM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wasi0013","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30567415,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-16T04:42:47.996Z","status":"ssl_error","status_checked_at":"2026-03-16T04:42:44.668Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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"},"owner_record":{"login":"wasi0013","name":"Wasi Mohammed Abdullah","uuid":"3449675","kind":"user","description":"","email":"","website":"https://wasi0013.com/contact/","location":"Chittagong, Bangladesh","twitter":"wasi0013","company":"Dreamcatcher IT (Founder)","icon_url":"https://avatars.githubusercontent.com/u/3449675?u=b0c474b1c62cf7e5779df1840a4eda806fc4b301\u0026v=4","repositories_count":49,"last_synced_at":"2023-08-13T19:58:59.540Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/wasi0013","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-07T05:01:42.935Z","updated_at":"2023-08-13T19:58:59.955Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wasi0013","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wasi0013/repositories"},"tags":[{"name":"v0.0.16","sha":"8ec524d668c008944bc75de4ea034ce2033837fd","kind":"commit","published_at":"2023-11-10T18:06:45.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v0.0.16","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v0.0.16","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v0.0.16","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.16/manifests"},{"name":"v0.0.15","sha":"14e36dbdf3745900bcd87ec7de7c78ce1523a999","kind":"commit","published_at":"2023-11-08T13:29:46.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v0.0.15","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v0.0.15","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v0.0.15","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.15/manifests"},{"name":"v.0.0.14","sha":"30be8565be9772390abcbbb7cbe5162af64a93d8","kind":"commit","published_at":"2023-11-07T02:05:21.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v.0.0.14","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v.0.0.14","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v.0.0.14","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v.0.0.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v.0.0.14/manifests"},{"name":"v.0.0.13","sha":"98c3dd47850404e8fc195140532fea8162c61fee","kind":"commit","published_at":"2023-11-06T18:57:29.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v.0.0.13","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v.0.0.13","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v.0.0.13","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v.0.0.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v.0.0.13/manifests"},{"name":"v0.0.12","sha":"a06b531bc5885a96b040e1f326052b35ca59fe65","kind":"commit","published_at":"2023-11-03T18:40:21.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v0.0.12","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v0.0.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v0.0.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.12/manifests"},{"name":"v0.0.11","sha":"4dc067e4a0cc604a7b4e5cc9f2fed4388e479790","kind":"commit","published_at":"2023-11-03T17:04:49.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v0.0.11","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v0.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v0.0.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.11/manifests"},{"name":"v0.0.10","sha":"7e6db816f1a276f61d8c36395325944389abfee3","kind":"commit","published_at":"2023-11-03T16:53:52.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v0.0.10","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v0.0.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v0.0.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.10/manifests"},{"name":"v0.0.9","sha":"9e051d1e4f47be2ad255d844e82863b7acc6f9a3","kind":"commit","published_at":"2023-11-02T18:16:08.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v0.0.9","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v0.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v0.0.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.9/manifests"},{"name":"v0.0.8","sha":"e6025513c40d099afd84a72cb1c2479f93313315","kind":"commit","published_at":"2023-11-01T03:50:37.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v0.0.8","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v0.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v0.0.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.8/manifests"},{"name":"v0.0.7","sha":"63645aab425cd2d79d7404c1a8f1e3c269eb11b3","kind":"commit","published_at":"2023-11-01T02:18:04.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v0.0.7","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v0.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v0.0.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.7/manifests"},{"name":"v0.0.6","sha":"5ba8dae32d95bda5b96579a73065d54e7ad8316a","kind":"commit","published_at":"2023-10-31T04:34:53.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v0.0.6","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v0.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v0.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.6/manifests"},{"name":"v0.0.5","sha":"8da24c32025d0a02632d6a2adcdd8b7c0df98d7f","kind":"commit","published_at":"2023-10-30T05:02:16.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v0.0.5","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v0.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v0.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.5/manifests"},{"name":"v0.0.4","sha":"697b854952fd66b1180006d20f16e3b94293798d","kind":"commit","published_at":"2023-10-28T10:00:40.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v0.0.4","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v0.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v0.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.4/manifests"},{"name":"v0.0.2","sha":"075044413051425da0b858668abcef2d63c99dc9","kind":"commit","published_at":"2018-11-09T11:44:01.000Z","download_url":"https://codeload.github.com/wasi0013/PyTM/tar.gz/v0.0.2","html_url":"https://github.com/wasi0013/PyTM/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/wasi0013/PyTM@v0.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/tags/v0.0.2/manifests"}]},"repo_metadata_updated_at":"2026-04-19T11:16:56.998Z","dependent_packages_count":0,"downloads":58,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":17.409123239423227,"dependent_repos_count":21.544734775075646,"dependent_packages_count":10.119285352930213,"stargazers_count":17.128078349339166,"forks_count":19.14609168931293,"docker_downloads_count":null,"average":17.069462681216237},"purl":"pkg:pypi/python-pytm","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/python-pytm","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/python-pytm","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/python-pytm/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-07-31T02:49:40.078Z","issues_count":4,"pull_requests_count":132,"avg_time_to_close_issue":44674148.0,"avg_time_to_close_pull_request":6537121.196969697,"issues_closed_count":4,"pull_requests_closed_count":132,"pull_request_authors_count":4,"issue_authors_count":3,"avg_comments_per_issue":2.5,"avg_comments_per_pull_request":0.8181818181818182,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":109,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/wasi0013%2FPyTM/issues","maintainers":[{"login":"wasi0013","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/wasi0013"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-pytm/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-pytm/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-pytm/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-pytm/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-pytm/codemeta","maintainers":[{"uuid":"wasi0013","login":"wasi0013","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/wasi0013/","role":null,"created_at":"2023-02-25T06:29:45.713Z","updated_at":"2023-02-25T06:29:45.713Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/wasi0013/packages"}]}