{"id":31565690,"url":"https://github.com/correlaid/datenguide-python","last_synced_at":"2025-10-05T07:15:12.576Z","repository":{"id":34956213,"uuid":"193223252","full_name":"CorrelAid/datenguide-python","owner":"CorrelAid","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-26T21:30:39.000Z","size":41732,"stargazers_count":35,"open_issues_count":19,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-08-16T13:07:31.995Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","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/CorrelAid.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-06-22T10:51:33.000Z","updated_at":"2025-02-06T16:39:21.000Z","dependencies_parsed_at":"2023-01-15T11:15:34.283Z","dependency_job_id":null,"html_url":"https://github.com/CorrelAid/datenguide-python","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/CorrelAid/datenguide-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CorrelAid%2Fdatenguide-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CorrelAid%2Fdatenguide-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CorrelAid%2Fdatenguide-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CorrelAid%2Fdatenguide-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CorrelAid","download_url":"https://codeload.github.com/CorrelAid/datenguide-python/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CorrelAid%2Fdatenguide-python/sbom","scorecard":{"id":33315,"data":{"date":"2025-08-11","repo":{"name":"github.com/CorrelAid/datenguide-python","commit":"ecbd15fb21422a743f31b906fa867b5660620f68"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Code-Review","score":2,"reason":"Found 3/12 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/CorrelAid/datenguide-python/ci.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/CorrelAid/datenguide-python/ci.yaml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/ci.yaml:24","Warn: pipCommand not pinned by hash: .github/workflows/ci.yaml:25","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"24 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2020-73","Warn: Project is vulnerable to: PYSEC-2014-14 / GHSA-652x-xj99-gmcc","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2014-13 / GHSA-cfj3-7x9c-4p3h","Warn: Project is vulnerable to: PYSEC-2018-28 / GHSA-x84v-xcm2-53pg","Warn: Project is vulnerable to: PYSEC-2022-42986 / GHSA-43fp-rhv2-5gv8","Warn: Project is vulnerable to: PYSEC-2023-135 / GHSA-xqr8-7jwr-rhp7","Warn: Project is vulnerable to: PYSEC-2024-60 / GHSA-jjg7-2v4v-x38h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: GHSA-6p56-wp2h-9hxr","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2021-437 / GHSA-5xp3-jfq3-5q8x","Warn: Project is vulnerable to: PYSEC-2023-228 / GHSA-mq26-g339-26xf","Warn: Project is vulnerable to: PYSEC-2022-42969","Warn: Project is vulnerable to: PYSEC-2023-74 / GHSA-j8r2-6x86-q33q","Warn: Project is vulnerable to: GHSA-34jh-p97f-mpxf","Warn: Project is vulnerable to: PYSEC-2023-212 / GHSA-g4mx-q9vg-27p4","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v","Warn: Project is vulnerable to: PYSEC-2023-192 / GHSA-v845-jxx5-vc9f","Warn: Project is vulnerable to: PYSEC-2024-187 / GHSA-rqc4-2hc7-8c8v","Warn: Project is vulnerable to: PYSEC-2022-43017 / GHSA-qwmp-2cf2-g9g6","Warn: Project is vulnerable to: GHSA-jfmj-5v4g-7637"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 28 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-14T19:42:35.731Z","repository_id":34956213,"created_at":"2025-08-14T19:42:35.731Z","updated_at":"2025-08-14T19:42:35.731Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278421623,"owners_count":25984047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-10-05T07:15:11.183Z","updated_at":"2025-10-05T07:15:12.571Z","avatar_url":"https://github.com/CorrelAid.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"Datenguide Python\n=================\n\n.. image:: https://img.shields.io/pypi/v/datenguidepy.svg\n        :target: https://pypi.python.org/pypi/datenguidepy\n\n.. image:: https://img.shields.io/travis/CorrelAid/datenguide-python.svg\n        :target: https://travis-ci.org/CorrelAid/datenguide-python\n\n.. image:: https://readthedocs.org/projects/datenguidepy/badge/?version=latest\n        :target: https://datenguidepy.readthedocs.io/en/latest/readme/#quick-start\n\n.. image:: https://mybinder.org/badge_logo.svg\n :target: https://mybinder.org/v2/gh/CorrelAid/datenguide-python/master?filepath=use_case\n \n* Free software: MIT license\n* Documentation:  https://datenguidepy.readthedocs.io/\n\nThe package provides easy access to German publicly available `regional statistics`_.\nIt does so by providing a wrapper for the `GraphQL API of the Datenguide project`_.\n\n\nFeatures\n--------\n\n**Overview of available statistics and regions:**\n  The package provides DataFrames with the available statistics and regions, which\n  can be queried by the user without having to refer to expert knowledge on regional\n  statistics or the documentation of the underlying GraphQL API\n\n**Build and Execute Queries:**\n  The package provides the user an object oriented interface to build queries that\n  fetch certain statistics and return the results as a pandas DataFrame for\n  further analysis.\n  \n**Automatic inclusion of relevant meta data**\n  Queries automatically retrieve some meta data along with the actual data\n  to give the user more convenient access to the statistics without having to worry\n  about too many technichal details\n  \n**Full fidelity data**\n  The package provides full fidelity data access to the datenguide API.\n  This allows all use cases to use precicely the data that they need\n  if it is available. It also means that most data cleaning has to be done\n  by the user.\n\nQuick Start\n-----------\n\n============\nInstall\n============\nTo use the package install the package (command line): \n\n.. code-block:: python\n\n   pip install datenguidepy\n   \n===============\nMinimal example\n===============\nTo see the package work and obtain a DataFrame containing\nsome statistics, the followin constitutes a minimal example.\n\n.. code-block:: python\n\n    from datenguidepy import Query\n    \n    q = Query.region('01')\n    q.add_field('BEV001')\n    result_df = q.results()\n    \n    \n================\nComplex examples\n================\n\nThese examples is intendend to illustrate many\nof the package's features at the same time. The\nidea is to give an impression of some of the possibilities.\nA more detailed explanation of the functionality can be found\nin the the rest of the documentation.\n\n.. code-block:: python\n\n    q = Query.region(['02','11'])\n    stat = q.add_field('BEVSTD')\n    stat.add_args({'year' : [2011,2012]})\n    stat2 = q.add_field('AI1601')\n    stat2.add_args({'year' : [2011,2012]})\n    q.results(\n        verbose_statistics = True,\n        add_units = True,\n    ).iloc[:,:7]\n    \n====  ====  =======  ======  =============================================  =============  ============================  =============\n  ..    id  name       year    Verfügbares Einkommen je Einwohner (AI1601)  AI1601_unit      Bevölkerungsstand (BEVSTD)  BEVSTD_unit\n====  ====  =======  ======  =============================================  =============  ============================  =============\n   0    02  Hamburg    2011                                          22695  EUR                                 1718187  Anzahl\n   1    02  Hamburg    2012                                          22971  EUR                                 1734272  Anzahl\n   0    11  Berlin     2011                                          18183  EUR                                 3326002  Anzahl\n   1    11  Berlin     2012                                          18380  EUR                                 3375222  Anzahl\n====  ====  =======  ======  =============================================  =============  ============================  =============\n\n.. code-block:: python\n \n    q = Query.region('11')\n    stat = q.add_field('BEVSTD')\n    stat.add_args({\n        'GES' : 'GESW',\n        'statistics' : 'R12411',\n        'NAT' : 'ALL',\n        'year' : [1995,1996]\n    })\n    stat.add_field('GES')\n    stat.add_field('NAT')\n    q.results(verbose_enums = True).iloc[:,:6]\n    \n====  ====  ======  ========  ================  ======  ========\n  ..    id  name    GES       NAT                 year    BEVSTD\n====  ====  ======  ========  ================  ======  ========\n   0    11  Berlin  weiblich  Ausländer(innen)    1995    191378\n   1    11  Berlin  weiblich  Deutsche            1995   1605762\n   2    11  Berlin  weiblich  Gesamt              1995   1797140\n   3    11  Berlin  weiblich  Deutsche            1996   1590407\n   4    11  Berlin  weiblich  Ausländer(innen)    1996    195301\n   5    11  Berlin  weiblich  Gesamt              1996   1785708\n====  ====  ======  ========  ================  ======  ========\n\n\n\n\n=======================================\nGet information on fields and meta data\n=======================================\n\n**Get information on region ids**\n\n.. code-block:: python\n\n   # from datenguidepy import get_regions\n\n    get_regions()\n\nUse pandas *query()* functionality to get specific regions. E.g., if you want to get all IDs on \"Bundeländer\" use.\nFor more information on \"nuts\" levels see Wikipedia_.\n\n.. code-block:: python\n\n    get_regions().query(\"level == 'nuts1'\")\n\n\n\n**Get information on statistic shortnames**\n\n.. code-block:: python\n\n  #  from datenguidepy import get_statistics\n\n    get_statistics()\n    # return statistical descriptions in English\n    get_statistics(target_language = 'en')\n\n**Get information on single fields**\n\nYou can further information about description, possible arguments, fields and enum values on a field you added to a query.\n\n.. code-block:: python\n\n    q = Query.region(\"01\")\n    stat = q.add_field(\"BEV001\")\n    stat.get_info()\n\n===================\nFurther information\n===================\n\nFor detailed examples see the notebooks within the use_case_ folder.\n\nFor a detailed documentation of all statistics and fields see the Datenguide API.\n\n\n\nCredits\n-------\nAll this builds on the great work of Datenguide_ and their GraphQL API `datenguide/datenguide-api`_ \n\nThe data is retrieved via the Datenguide API from the \"Statistische Ämter des Bundes und der Länder\". \nData being used via this package has to be `credited according to the \"Datenlizenz Deutschland – Namensnennung – Version 2.0\"`_.\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n.. _`datenguide/datenguide-api`: https://github.com/datenguide/datenguide-api\n.. _Datenguide: https://datengui.de/\n.. _`GraphQL API of the Datenguide project`: https://github.com/datenguide/datenguide-api\n.. _`regional statistics`: https://www.regionalstatistik.de/genesis/online/logon\n.. _use_case: https://github.com/CorrelAid/datenguide-python/tree/master/use_case\n.. _`credited according to the \"Datenlizenz Deutschland – Namensnennung – Version 2.0\"`: https://www.regionalstatistik.de/genesis/online;sid=C636A83329D19AF20E3A4F9E767576A9.reg2?Menu=Impressum\n.. _Wikipedia: https://de.wikipedia.org/wiki/NUTS:DE#Liste_der_NUTS-Regionen_in_Deutschland_(NUTS_2016)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorrelaid%2Fdatenguide-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcorrelaid%2Fdatenguide-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorrelaid%2Fdatenguide-python/lists"}