# [vCard module](https://gitlab.com/engmark/vcard)
[![Python: 3.8-3.13](https://img.shields.io/badge/Python-3.8--3.13-blue)](https://www.python.org/)
[![coverage report](https://gitlab.com/engmark/vcard/badges/master/coverage.svg)](https://gitlab.com/engmark/vcard/-/commits/master)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)
[![pylint: passing](https://img.shields.io/badge/pylint-passing-brightgreen)](https://www.pylint.org/)
[![shellcheck: passing](https://img.shields.io/badge/shellcheck-passing-brightgreen)](https://www.shellcheck.net/)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)
This program can be used for strict validation and parsing of vCards. It currently supports
[vCard 3.0 (RFC 2426)](https://tools.ietf.org/html/rfc2426).
## Installation
To install or upgrade in a virtualenv:
```shell
pip install --upgrade vcard
```
To use without installing:
```shell
nix-shell
```
See the nixpkgs index for instructions to install the
[command-line tool](https://search.nixos.org/packages?channel=unstable&show=vcard&type=packages&query=vcard)
or the
[Python package](https://search.nixos.org/packages?channel=unstable&show=python311Packages.vcard&type=packages&query=.vcard).
## Usage
See `vcard --help`.
## Utilities
- [`format-TEL.bash`](./format-TEL.bash) - Format phone numbers according to national standards
- [`split.bash`](./split.bash) - Split a multiple vCards file into individual files
- [`sort-lines.bash`](./sort-lines.bash) - Sort vCard property lines according to a custom key
- [`join-lines.sh`](./join-lines.sh) - Join previously split vCard lines
- [`split-lines.sh`](./split-lines.sh) - Split long vCard lines
## Packaging status
[![Packaging status](https://repology.org/badge/vertical-allrepos/python:vcard.svg?header=)](https://repology.org/project/python:vcard/versions)
## Development
### Setup
```shell
git clone git@gitlab.com:engmark/vcard.git
```
### Release
1. Bump the version in [vcard/version.txt](vcard/version.txt)
2. Commit & push everything
3. [Create a new merge request](https://gitlab.com/engmark/vcard/-/merge_requests/new)
4. Wait for the MR to be merged
5. Update to latest `master`
6. `nix-shell --pure --run './clean.bash && ./distribute.bash && ./release.bash'`
Requirements:
- Nix
## Contributing code
You can contribute either by submitting a
[merge requests](https://gitlab.com/engmark/vcard/-/merge_requests) or by
[email](https://gitlab.com/engmark/vcard/-/blob/master/vcard/__init__.py#L6).
Security fixes should only be submitted via email, encrypted with the PGP key
F1C5F63013E5DE2FB574D42ACE5EB38344D85DB6.
Email is also appropriate in some other cases:
- If you don't want to [create a GitLab account](https://gitlab.com/users/sign_up).
- If you want to be _anonymous._ Make sure to be explicit about this! Contributing anonymously
means the following:
- You transfer copyright to me. Otherwise your contribution would make it impossible for future
maintainers to ever change the license - they wouldn't know who to contact to ask for
permission.
- The commit message will make it clear that it was contributed anonymously, with an
"Authored-by: Anonymous <>" line.
- Email submissions must be in patch format, including a detailed commit message, so that it can be
added to the repository without any changes, and without breaking the pipeline.
🚫 Other channels are _not supported._
## How open is this project?
[Background](https://paperless.blog/being-open-about-openness)
- GitLab features:
- All features enabled for this repository are publicly available
- Project settings are private for security reasons
- [Commit history](https://gitlab.com/engmark/vcard/-/commits/master):
- All commits on all branches are publicly visible
- [Issues](https://gitlab.com/engmark/vcard/-/issues):
- Publicly visible
- You need to be logged into GitLab to submit an issue or comment
- Questions from non-users interested in the project are welcome
- Expect answers within a few days
- [Pipelines](https://gitlab.com/engmark/vcard/-/pipelines):
- [The configuration](.gitlab-ci.yml) is publicly visible
- [Runs](https://gitlab.com/engmark/vcard/-/pipelines) are publicly visible
- Logs are publicly visible, and
[logs should be kept indefinitely](https://docs.gitlab.com/ee/user/gitlab_com/#job-logs).
- [Releases](https://pypi.org/project/vcard/):
- Hosted publicly
- [Old releases](https://pypi.org/project/vcard/#history) should be available indefinitely, but
this is under PyPI's control, not mine
- Work (past, current, and planned) is documented publicly within the
[project](https://gitlab.com/engmark/vcard)
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/engmark/vcard",
"name": "vcard",
"maintainer": "Victor Engmark",
"docs_url": null,
"requires_python": null,
"maintainer_email": "victor@engmark.name",
"keywords": "vCard vCards RFC 2426 RFC2426 validator",
"author": "Victor Engmark",
"author_email": "victor@engmark.name",
"download_url": "https://pypi.org/project/vcard/",
"platform": "POSIX",
"description": "# [vCard module](https://gitlab.com/engmark/vcard)\n\n[![Python: 3.8-3.13](https://img.shields.io/badge/Python-3.8--3.13-blue)](https://www.python.org/)\n[![coverage report](https://gitlab.com/engmark/vcard/badges/master/coverage.svg)](https://gitlab.com/engmark/vcard/-/commits/master)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)\n[![pylint: passing](https://img.shields.io/badge/pylint-passing-brightgreen)](https://www.pylint.org/)\n[![shellcheck: passing](https://img.shields.io/badge/shellcheck-passing-brightgreen)](https://www.shellcheck.net/)\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)\n\nThis program can be used for strict validation and parsing of vCards. It currently supports\n[vCard 3.0 (RFC 2426)](https://tools.ietf.org/html/rfc2426).\n\n## Installation\n\nTo install or upgrade in a virtualenv:\n\n```shell\npip install --upgrade vcard\n```\n\nTo use without installing:\n\n```shell\nnix-shell\n```\n\nSee the nixpkgs index for instructions to install the\n[command-line tool](https://search.nixos.org/packages?channel=unstable&show=vcard&type=packages&query=vcard)\nor the\n[Python package](https://search.nixos.org/packages?channel=unstable&show=python311Packages.vcard&type=packages&query=.vcard).\n\n## Usage\n\nSee `vcard --help`.\n\n## Utilities\n\n- [`format-TEL.bash`](./format-TEL.bash) - Format phone numbers according to national standards\n- [`split.bash`](./split.bash) - Split a multiple vCards file into individual files\n- [`sort-lines.bash`](./sort-lines.bash) - Sort vCard property lines according to a custom key\n- [`join-lines.sh`](./join-lines.sh) - Join previously split vCard lines\n- [`split-lines.sh`](./split-lines.sh) - Split long vCard lines\n\n## Packaging status\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/python:vcard.svg?header=)](https://repology.org/project/python:vcard/versions)\n\n## Development\n\n### Setup\n\n```shell\ngit clone git@gitlab.com:engmark/vcard.git\n```\n\n### Release\n\n1. Bump the version in [vcard/version.txt](vcard/version.txt)\n2. Commit & push everything\n3. [Create a new merge request](https://gitlab.com/engmark/vcard/-/merge_requests/new)\n4. Wait for the MR to be merged\n5. Update to latest `master`\n6. `nix-shell --pure --run './clean.bash && ./distribute.bash && ./release.bash'`\n\nRequirements:\n\n- Nix\n\n## Contributing code\n\nYou can contribute either by submitting a\n[merge requests](https://gitlab.com/engmark/vcard/-/merge_requests) or by\n[email](https://gitlab.com/engmark/vcard/-/blob/master/vcard/__init__.py#L6).\n\nSecurity fixes should only be submitted via email, encrypted with the PGP key\nF1C5F63013E5DE2FB574D42ACE5EB38344D85DB6.\n\nEmail is also appropriate in some other cases:\n\n- If you don't want to [create a GitLab account](https://gitlab.com/users/sign_up).\n- If you want to be _anonymous._ Make sure to be explicit about this! Contributing anonymously\n means the following:\n - You transfer copyright to me. Otherwise your contribution would make it impossible for future\n maintainers to ever change the license - they wouldn't know who to contact to ask for\n permission.\n - The commit message will make it clear that it was contributed anonymously, with an\n \"Authored-by: Anonymous <>\" line.\n- Email submissions must be in patch format, including a detailed commit message, so that it can be\n added to the repository without any changes, and without breaking the pipeline.\n\n\ud83d\udeab Other channels are _not supported._\n\n## How open is this project?\n\n[Background](https://paperless.blog/being-open-about-openness)\n\n- GitLab features:\n - All features enabled for this repository are publicly available\n - Project settings are private for security reasons\n- [Commit history](https://gitlab.com/engmark/vcard/-/commits/master):\n - All commits on all branches are publicly visible\n- [Issues](https://gitlab.com/engmark/vcard/-/issues):\n - Publicly visible\n - You need to be logged into GitLab to submit an issue or comment\n - Questions from non-users interested in the project are welcome\n - Expect answers within a few days\n- [Pipelines](https://gitlab.com/engmark/vcard/-/pipelines):\n - [The configuration](.gitlab-ci.yml) is publicly visible\n - [Runs](https://gitlab.com/engmark/vcard/-/pipelines) are publicly visible\n - Logs are publicly visible, and\n [logs should be kept indefinitely](https://docs.gitlab.com/ee/user/gitlab_com/#job-logs).\n- [Releases](https://pypi.org/project/vcard/):\n - Hosted publicly\n - [Old releases](https://pypi.org/project/vcard/#history) should be available indefinitely, but\n this is under PyPI's control, not mine\n- Work (past, current, and planned) is documented publicly within the\n [project](https://gitlab.com/engmark/vcard)\n",
"bugtrack_url": null,
"license": "AGPLv3",
"summary": "vCard validator, class and utility functions",
"version": "1.0.0",
"project_urls": {
"Download": "https://pypi.org/project/vcard/",
"Homepage": "https://gitlab.com/engmark/vcard"
},
"split_keywords": [
"vcard",
"vcards",
"rfc",
"2426",
"rfc2426",
"validator"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5c662cab5fc52ae01d07d8bb08c4ae55bb66fcb1718708a2afb3c4621f051f22",
"md5": "865a9ea7b37c9e68bc72ea7106324eb0",
"sha256": "17d63d632060d0fc181a8f8a98171b7c1ec071b30764f64c6dc8039aa1b32a7f"
},
"downloads": -1,
"filename": "vcard-1.0.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "865a9ea7b37c9e68bc72ea7106324eb0",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 29364,
"upload_time": "2024-10-06T07:30:01",
"upload_time_iso_8601": "2024-10-06T07:30:01.893398Z",
"url": "https://files.pythonhosted.org/packages/5c/66/2cab5fc52ae01d07d8bb08c4ae55bb66fcb1718708a2afb3c4621f051f22/vcard-1.0.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-06 07:30:01",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "engmark",
"gitlab_project": "vcard",
"lcname": "vcard"
}