Package: nama-alamat
A Python Package to Indonesia Name and Address Preprocessor.Features…​System RequirementsPython 3.7 / PyPy 3.7 or aboveInstallingThis package is available atPyPi.I recommend you to install usingpipx- a tool that helps installing and running end-user applications written in Python without worrying about any virtualenv magic:$ pipx install nama_alamatBut you can of course also install it using normal pip or in your virtual environment:$ python3 -m pip install nama_alamatUsages$ nama_alamat [--help]Extra: Run using DockerThis Project also offers a best-practiced Dockerfile to run this package in an ensured-to-be-working environment:Details inREADME_DOCKER.📝 Development📌 Development Machine DependenciesPython 3.7 or greateror (optional)Docker📌 Development DependenciesDevelopment Dependencies are defined in apip requirements filenamedrequirements-dev.txt. Example Installation Instructions for Linux are shown below:# "optional": create a python virtualenv and activate it for the current shell session
$ python3 -m venv venv
$ source venv/bin/activate

(venv)$ python3 -m pip install -r requirements-dev.txtInstalling the package locally from live source itself can be done using the following commands:# "optional": ensure it actually works by using previously-pinned versions
(venv)$ python3 -m pip install -r requirements.txt --require-hashes

# install package from path in develop mode
(venv)$ python3 -m pip install -e .When you alter the package definition (i.e.setup.cfg) you need to re-run the install command (e.g. to register new cli scripts).(venv)$ python3 -m pip install -e .ℹ️ Updating pinned dependenciesWhen you change the dependencies of the pypackage (insetup.cfg) or change one of therequirements*.infiles you must run the appropriate commands to regenerate their*.txtcounterparts. The command to run is denoted in form of a comment at the top the respectiverequirements*.txtfile, i.e.:(venv)$ pip-compile --generate-hashes
(venv)$ pip-compile requirements-dev.in
(venv)$ pip-compile requirements-build.in🧪 TestingAutomatic Tests are run on each Contribution on all major Operating Systems (macOS, Windows, Ubuntu) and Python versions (Python 3.7+) using GitHub Workflows.In order to run the testsuite locally you need to tell tox (the test runner) which environment (python version - pip version) you want to run as seen in the Examples below:# use default python 3 of system
$ tox -e py3

# use a specified version of python
$ tox -e py37

# implicitly use default python 3 of system, ensuring the use of some fixed old pip version
$ tox -e pipprevious

# implicitly use default python 3 of system, ensuring the use of latest published and accessible version of pip
$ tox -e piplatest

# implicitly use default python 3 of system, ensuring the use of latest devel version of pip
$ tox -e pipmain

# mix and match the above
$ tox -e py37-piplatestIn order to run the additional dockerfile smoke test simply execute thedocker_smoke_test.pyfile as shown below:$ python3 docker_smoke_test.py🔢 VersioningVersions are defined usingTagswhich start withv.When a new tag is pushed,a GitHub CI workflow() takes care of building the wheels usingbuildand uploading them to PyPI usingtwine.Version Bumps shall be made through the use ofbump2version, e.g.:$ bump2version patch
or
$ bump2version minor
or
$ bump2version majorThis tool automatically updates the version string in the required files and creates a generic commit with a matching tag (as configured in.bumpversion.cf).Do not forget thatjustgit push’ing does not push tags! Use:$ git push origin <tag_name>
or
$ git push origin $(git describe --match "v")*🍪 CookieCutterThis Project shall be kept in sync withthe CookieCutter it was originally templated fromusingcruft(if possible) or manual alteration (if needed) to the best extend possible.🕗 ChangelogWhen a new tag is pushed, an appropriate GitHub Release will be created by the Repository Maintainer to provide a proper human change log with a title and description.ℹ️ General Linting and Styling ConventionsGeneral Linting and Styling Conventions areautomaticallyheld up to Standardsby variouspre-commithooks, at least to some extend.Automatic Execution of pre-commit is done on each Contribution usingpre-commit.ci*. Pull Requests even automatically get fixed by the same tool, at least by hooks that automatically alter files.Not to confuse: Although some pre-commit hooks may be able to warn you about script-analyzed flaws in syntax or even code to some extend (for which reason pre-commit’s hooks arepart ofthe test suite), pre-commit itself does not run any real Test Suites. For Information on Testing, see🧪 Testing.Nevertheless, I recommend you to integrate pre-commit into your local development workflow yourself.This can be done by cd’ing into the directory of your cloned project and runningpre-commit install. Doing so will make git run pre-commit checks on every commit you make, aborting the commit themselves if a hook alarm’ed.You can also, for example, execute pre-commit’s hooks at any time by runningpre-commit run --all-files.💪 ContributingThe following sections are generic in nature and are used to help new contributors. The actual "Development Documentation" of this project is found under📝 Development.🤝 PreambleFirst off, thank you for considering contributing to this Project.Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.🍪 CookieCutterThis Project owns many of its files tothe CookieCutter it was originally templated from.Please check if the edit you have in mind is actually applicable to the template and if so make an appropriate change there instead. Your change may also be applicable partly to the template as well as partly to something specific to this project, in which case you would be creating multiple PRs.💬 Conventional CommitsA casual contributor does not have to worry about followingthe specby definition, as pull requests are being squash merged into one commit in the project. Only core contributors, i.e. those with rights to push to this project’s branches, must follow it (e.g. to allow for automatic version determination and changelog generation to work).🚀 Getting StartedContributions are made to this repo via Issues and Pull Requests (PRs). A few general guidelines that cover both:Search for existing Issues and PRs before creating your own.If you’ve never contributed before, seethe first timer’s guide on Auth0’s blogfor resources and tips on how to get started.IssuesIssues should be used to report problems, request a new feature, or to discuss potential changesbeforea PR is created. When youcreate a new Issue, a template will be loaded that will guide you through collecting and providing the information we need to investigate.If you find an Issue that addresses the problem you’re having, please add your own reproduction information to the existing issuerather than creating a new one. Adding areactioncan also help be indicating to our maintainers that a particular problem is affecting more than just the reporter.Pull RequestsPRs to this Project are always welcome and can be a quick way to get your fix or improvement slated for the next release.In general, PRs should:Only fix/add the functionality in questionORaddress wide-spread whitespace/style issues, not both.Add unit or integration tests for fixed or changed functionality (if a test suite already exists).Address a single concernInclude documentationin the repoBe accompanied by a complete Pull Request template (loaded automatically when a PR is created).For changes that address core functionality or would require breaking changes (e.g. a major release), it’s best to open an Issue to discuss your proposal first.In general, we follow the "fork-and-pull" Git workflowFork the repository to your own Github accountClone the project to your machineCreate a branch locally with a succinct but descriptive nameCommit changes to the branchFollowing any formatting and testing guidelines specific to this repoPush changes to your forkOpen a PR in our repository and follow the PR template so that we can efficiently review the changes.🗒 ChangelogPlease refer to theRelease Page of this Repositoryfor a human changelog of the correspondingTags (Versions) of this Project.Note that this Project adheres to Semantic Versioning. Please report any accidental breaking changes of a minor version update.⚖️ LicenseLICENSEMIT License

Copyright (c) 2022, Esha Indra

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.