{"id":49249332,"url":"https://github.com/senzing-garage/g2-python","last_synced_at":"2026-04-24T23:35:37.029Z","repository":{"id":37908272,"uuid":"370677039","full_name":"senzing-garage/g2-python","owner":"senzing-garage","description":"Tools found at g2/python in the SenzingAPI package.","archived":false,"fork":false,"pushed_at":"2026-02-13T18:50:22.000Z","size":1858,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-02-14T00:08:08.638Z","etag":null,"topics":["g2-python","senzing-cleanup","senzing-g2-python","t-comm","utility"],"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/senzing-garage.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-05-25T11:58:52.000Z","updated_at":"2026-02-13T18:48:54.000Z","dependencies_parsed_at":"2024-01-27T03:43:05.071Z","dependency_job_id":"44bdb21b-f941-427c-bd8e-9faf7bdb7d81","html_url":"https://github.com/senzing-garage/g2-python","commit_stats":null,"previous_names":["senzing-garage/g2-python"],"tags_count":93,"template":false,"template_full_name":null,"purl":"pkg:github/senzing-garage/g2-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senzing-garage%2Fg2-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senzing-garage%2Fg2-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senzing-garage%2Fg2-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senzing-garage%2Fg2-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/senzing-garage","download_url":"https://codeload.github.com/senzing-garage/g2-python/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senzing-garage%2Fg2-python/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32245150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"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":["g2-python","senzing-cleanup","senzing-g2-python","t-comm","utility"],"created_at":"2026-04-24T23:35:36.163Z","updated_at":"2026-04-24T23:35:37.022Z","avatar_url":"https://github.com/senzing-garage.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# g2-python\n\nIf you are beginning your journey with [Senzing],\nplease start with [Senzing Quick Start guides].\n\nYou are in the [Senzing Garage] where projects are \"tinkered\" on.\nAlthough this GitHub repository may help you understand an approach to using Senzing,\nit's not considered to be \"production ready\" and is not considered to be part of the Senzing product.\nHeck, it may not even be appropriate for your application of Senzing!\n\n## Synopsis\n\nThe aggregation of repositories that comprise `g2/python` in the Senzing SDK API.\n\n## Overview\n\nThe aggregated files look like this:\n\n```console\n$ tree g2/python\n\n├── CompressedFile.py\n├── demo\n│   ├── sample\n│   │   ├── project.csv\n│   │   ├── project.json\n│   │   ├── sample_company.csv\n│   │   ├── sample_company.json\n│   │   ├── sample_person.csv\n│   │   └── sample_person.json\n│   └── truth\n│       ├── project.csv\n│       ├── project.json\n│       ├── truthset-person-v1-set1-data.csv\n│       ├── truthset-person-v1-set1-key.csv\n│       ├── truthset-person-v1-set1.sh\n│       ├── truthset-person-v1-set2-data.csv\n│       ├── truthset-person-v1-set2-key.csv\n│       └── truthset-person-v1-set2.sh\n├── DumpStack.py\n├── G2Audit.py\n├── G2Command.py\n├── G2ConfigMgr.py\n├── G2Config.py\n├── G2ConfigTables.py\n├── G2ConfigTool.py\n├── G2ConfigTool.readme\n├── G2CreateProject.py\n├── G2Database.py\n├── G2Diagnostic.py\n├── G2Engine.py\n├── G2Exception.py\n├── G2Explorer.py\n├── G2Export.py\n├── G2Hasher.py\n├── G2IniParams.py\n├── G2Loader.py\n├── G2Paths.py\n├── G2Product.py\n├── G2Project.py\n├── G2S3.py\n├── G2SetupConfig.py\n├── G2Snapshot.py\n├── G2UpdateProject.py\n└── governor_postgres_xid.py\n```\n\nThese files are packaged in `senzingapi-M.m.P-00000.x86_64.rpm` and `senzingapi_M.m.P-00000_amd64.deb`\n\n### Contents\n\n1. [Preamble]\n   1. [Legend]\n1. [Tips]\n   1. [View a specific release of g2/python]\n   1. [Compare releases]\n1. [Develop]\n   1. [Prerequisites for development]\n   1. [Clone repository]\n   1. [Create branch]\n   1. [Update files from submodules]\n   1. [Update CHANGELOG.md]\n   1. [Verify changes]\n   1. [Pull branch into main]\n   1. [Create versioned release]\n\n## Preamble\n\nAt [Senzing], we strive to create GitHub documentation in a\n\"[don't make me think]\" style. For the most part, instructions are copy and paste.\nWhenever thinking is needed, it's marked with a \"thinking\" icon :thinking:.\nWhenever customization is needed, it's marked with a \"pencil\" icon :pencil2:.\nIf the instructions are not clear, please let us know by opening a new\n[Documentation issue] describing where we can improve. Now on with the show...\n\n### Legend\n\n1. :thinking: - A \"thinker\" icon means that a little extra thinking may be required.\n   Perhaps there are some choices to be made.\n   Perhaps it's an optional step.\n1. :pencil2: - A \"pencil\" icon means that the instructions may need modification before performing.\n1. :warning: - A \"warning\" icon means that something tricky is happening, so pay attention.\n\n## Tips\n\n### View a specific release of g2/python\n\n1. Visit [github.com/senzing-garage/g2-python]\n1. In upper-left dropdown, probably set to \"main\", select the dropdown and choose the \"Tags\" tab.\n1. Choose the Senzing SDK API version of interest.\n1. The new URL will look like [https://github.com/senzing-garage/g2-python/tree/2.8.0],\n   where `2.8.0` is the version of Senzing SDK API.\n1. In addition to the `g2/python` directory being at the specified Senzing SDK API version,\n   the GitHub submodule references will also be at that version.\n\n### Compare releases\n\n1. :pencil2: To compare the differences between Senzing versions, use a URL like the following:\n   [https://github.com/senzing-garage/g2-python/compare/2.7.0...2.8.0]\n   Where:\n   1. `2.7.0` can be replaced with the earliest release in the comparison.\n   1. `2.8.0` can be replaced with the latest release in the comparison.\n   1. `main` can be used to replace `2.7.0` or `2.8.0` to indicate current head of main branch.\n\n## Develop\n\nThe following instructions are used when modifying and building the Docker image.\n\n### Prerequisites for development\n\n:thinking: The following tasks need to be complete before proceeding.\nThese are \"one-time tasks\" which may already have been completed.\n\n1. The following software programs need to be installed:\n   1. [git]\n\n### Clone repository\n\nFor more information on environment variables, see [Environment Variables].\n\n1. Set these environment variable values:\n\n   ```console\n   export GIT_ACCOUNT=senzing\n   export GIT_REPOSITORY=g2-python\n   export GIT_ACCOUNT_DIR=~/${GIT_ACCOUNT}.git\n   export GIT_REPOSITORY_DIR=\"${GIT_ACCOUNT_DIR}/${GIT_REPOSITORY}\"\n   ```\n\n1. Using the environment variables values just set, follow steps in [clone-repository] to install the Git repository.\n\n### Create branch\n\n1. :pencil2: Using [github.com/senzing-garage/g2-python], create a branch.\n   Then, identify the name of the branch created.\n   Example:\n\n   ```console\n   export GIT_BRANCH=my-test-branch\n   ```\n\n1. Checkout branch.\n   Example:\n\n   ```console\n   cd ${GIT_REPOSITORY_DIR}\n   git checkout main\n   git pull\n   git checkout ${GIT_BRANCH}\n   ```\n\n### Update files from submodules\n\n1. :pencil2: Set `GITHUB_ACCESS_TOKEN`.\n   This is needed to access GitHub above the \"public\" limit.\n   For information on how to obtain an access token, see\n   [Creating a personal access token].\n\n   ```console\n   export GITHUB_ACCESS_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n   ```\n\n1. Update submodules and copy files from submodules.\n   Example:\n\n   ```console\n   cd ${GIT_REPOSITORY_DIR}/bin\n   ./update-submodules.sh\n   ```\n\n### Update CHANGELOG.md\n\n1. Update `CHANGELOG.md` to reflect the new version of Senzing.\n\n### Verify changes\n\n1. If a new version of Senzing is installed into `/opt/senzing/g2`, then files can be compared.\n   Example:\n\n   ```console\n   diff -r /opt/senzing/g2/python ${GIT_REPOSITORY_DIR}/g2/python\n   ```\n\n1. Opening, but not creating, pull request can be made for the `GIT_BRANCH` branch to determine\n   if the changes seen are the expected.\n\n### Pull branch into main\n\n1. Follow a standard process for pulling into main branch.\n   Example:\n   1. Create a Pull Request for the `GIT_BRANCH` branch.\n   1. Have Pull Request approved.\n   1. Merge Pull request into \"main\" branch.\n\n### Create versioned release\n\n1. [Create a new versioned release] that matches the `senzingapi` release.\n\n[Clone repository]: #clone-repository\n[clone-repository]: https://github.com/senzing-garage/knowledge-base/blob/main/HOWTO/clone-repository.md\n[Compare releases]: #compare-releases\n[Create a new versioned release]: https://github.com/senzing-garage/g2-python/releases\n[Create branch]: #create-branch\n[Create versioned release]: #crate-versioned-release\n[Creating a personal access token]: https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token\n[Develop]: #develop\n[Documentation issue]: https://github.com/senzing-garage/template-python/issues/new?template=documentation_request.md\n[don't make me think]: https://github.com/senzing-garage/knowledge-base/blob/main/WHATIS/dont-make-me-think.md\n[Environment Variables]: https://github.com/senzing-garage/knowledge-base/blob/main/lists/environment-variables.md\n[git]: https://github.com/senzing-garage/knowledge-base/blob/main/WHATIS/git.md\n[github.com/senzing-garage/g2-python]: https://github.com/senzing-garage/g2-python\n[https://github.com/senzing-garage/g2-python/compare/2.7.0...2.8.0]: https://github.com/senzing-garage/g2-python/compare/2.7.0...2.8.0\n[https://github.com/senzing-garage/g2-python/tree/2.8.0]: https://github.com/senzing-garage/g2-python/tree/2.8.0\n[Legend]: #legend\n[Preamble]: #preamble\n[Prerequisites for development]: #prerequisites-for-development\n[Pull branch into main]: #pull-branch-into-main\n[Senzing Garage]: https://github.com/senzing-garage\n[Senzing Quick Start guides]: https://docs.senzing.com/quickstart/\n[Senzing]: https://senzing.com/\n[Tips]: #tips\n[Update CHANGELOG.md]: #update-changelog.md\n[Update files from submodules]: #update-files-from-submodules\n[Verify changes]: #verify-changes\n[View a specific release of g2/python]: #view-a-specific-release-of-g2python\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsenzing-garage%2Fg2-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsenzing-garage%2Fg2-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsenzing-garage%2Fg2-python/lists"}