.. contents::
:backlinks: top
========
Status
========
|VersionsBadge| |ImplementationBadge| |LicenseBadge|
|PyPI| |RTD| |Codecov| |Pyup| |CommitsSinceLastRelease|
=======
About
=======
This is a Python cffi_ port of libtcod_.
This library is `hosted on GitHub <https://github.com/libtcod/python-tcod>`_.
Any issues you have with this module can be reported at the
`GitHub issue tracker <https://github.com/libtcod/python-tcod/issues>`_.
=======
Usage
=======
This module was designed to be backward compatible with the original libtcodpy
module distributed with libtcod.
If you had code that runs on libtcodpy then you can use this library as a
drop-in replacement. This installs a libtcodpy module so you'll only need to
delete the libtcodpy/ folder that's usually bundled in an older libtcodpy
project.
Guides and Tutorials for libtcodpy should work with the tcod module.
The latest documentation can be found here:
https://python-tcod.readthedocs.io/en/latest/
==============
Installation
==============
Detailed installation instructions are here:
https://python-tcod.readthedocs.io/en/latest/installation.html
For the most part it's just::
pip3 install tcod
==============
Requirements
==============
* Python 3.10+
* Windows, Linux, or MacOS X 10.9+.
* On Linux, requires libsdl3
===========
Changelog
===========
You can find the most recent changelog
`here <https://github.com/libtcod/python-tcod/blob/main/CHANGELOG.md>`_.
=========
License
=========
python-tcod is distributed under the `Simplified 2-clause FreeBSD license
<https://github.com/HexDecimal/python-tdl/blob/master/LICENSE.txt>`_.
.. _LICENSE.txt: https://github.com/libtcod/python-tcod/blob/master/LICENSE.txt
.. _python-tdl: https://github.com/libtcod/python-tcod/
.. _cffi: https://cffi.readthedocs.io/en/latest/
.. _numpy: https://docs.scipy.org/doc/numpy/user/index.html
.. _libtcod: https://github.com/libtcod/libtcod
.. _pip: https://pip.pypa.io/en/stable/installing/
.. |VersionsBadge| image:: https://img.shields.io/pypi/pyversions/tcod.svg?maxAge=2592000
:target: https://pypi.python.org/pypi/tcod
.. |ImplementationBadge| image:: https://img.shields.io/pypi/implementation/tcod.svg?maxAge=2592000
:target: https://pypi.python.org/pypi/tcod
.. |LicenseBadge| image:: https://img.shields.io/pypi/l/tcod.svg?maxAge=2592000
:target: https://github.com/HexDecimal/tcod/blob/master/LICENSE.txt
.. |PyPI| image:: https://img.shields.io/pypi/v/tcod.svg?maxAge=10800
:target: https://pypi.python.org/pypi/tcod
.. |RTD| image:: https://readthedocs.org/projects/python-tcod/badge/?version=latest
:target: http://python-tcod.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. |Codecov| image:: https://codecov.io/gh/libtcod/python-tcod/branch/master/graph/badge.svg
:target: https://codecov.io/gh/libtcod/python-tcod
.. |Issues| image:: https://img.shields.io/github/issues/libtcod/python-tcod.svg?maxAge=3600
:target: https://github.com/libtcod/python-tcod/issues
.. |Pyup| image:: https://pyup.io/repos/github/libtcod/python-tcod/shield.svg
:target: https://pyup.io/repos/github/libtcod/python-tcod/
:alt: Updates
.. |CommitsSinceLastRelease| image:: https://img.shields.io/github/commits-since/libtcod/python-tcod/latest
:target: https://github.com/libtcod/python-tcod/blob/main/CHANGELOG.md
Raw data
{
"_id": null,
"home_page": null,
"name": "tcod",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "roguelike, cffi, Unicode, libtcod, field-of-view, pathfinding",
"author": null,
"author_email": "Kyle Benesch <4b796c65+tcod@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/3d/ae/536cd7c3022a5ba330a22d2e527eb8a2890903c35b75a9cc5c31b73354f9/tcod-19.3.1.tar.gz",
"platform": "Windows",
"description": ".. contents::\n :backlinks: top\n\n========\n Status\n========\n|VersionsBadge| |ImplementationBadge| |LicenseBadge|\n\n|PyPI| |RTD| |Codecov| |Pyup| |CommitsSinceLastRelease|\n\n=======\n About\n=======\nThis is a Python cffi_ port of libtcod_.\n\nThis library is `hosted on GitHub <https://github.com/libtcod/python-tcod>`_.\n\nAny issues you have with this module can be reported at the\n`GitHub issue tracker <https://github.com/libtcod/python-tcod/issues>`_.\n\n=======\n Usage\n=======\nThis module was designed to be backward compatible with the original libtcodpy\nmodule distributed with libtcod.\nIf you had code that runs on libtcodpy then you can use this library as a\ndrop-in replacement. This installs a libtcodpy module so you'll only need to\ndelete the libtcodpy/ folder that's usually bundled in an older libtcodpy\nproject.\n\nGuides and Tutorials for libtcodpy should work with the tcod module.\n\nThe latest documentation can be found here:\nhttps://python-tcod.readthedocs.io/en/latest/\n\n==============\n Installation\n==============\nDetailed installation instructions are here:\nhttps://python-tcod.readthedocs.io/en/latest/installation.html\n\nFor the most part it's just::\n\n pip3 install tcod\n\n==============\n Requirements\n==============\n* Python 3.10+\n* Windows, Linux, or MacOS X 10.9+.\n* On Linux, requires libsdl3\n\n===========\n Changelog\n===========\n\nYou can find the most recent changelog\n`here <https://github.com/libtcod/python-tcod/blob/main/CHANGELOG.md>`_.\n\n=========\n License\n=========\npython-tcod is distributed under the `Simplified 2-clause FreeBSD license\n<https://github.com/HexDecimal/python-tdl/blob/master/LICENSE.txt>`_.\n\n.. _LICENSE.txt: https://github.com/libtcod/python-tcod/blob/master/LICENSE.txt\n\n.. _python-tdl: https://github.com/libtcod/python-tcod/\n\n.. _cffi: https://cffi.readthedocs.io/en/latest/\n\n.. _numpy: https://docs.scipy.org/doc/numpy/user/index.html\n\n.. _libtcod: https://github.com/libtcod/libtcod\n\n.. _pip: https://pip.pypa.io/en/stable/installing/\n\n.. |VersionsBadge| image:: https://img.shields.io/pypi/pyversions/tcod.svg?maxAge=2592000\n :target: https://pypi.python.org/pypi/tcod\n\n.. |ImplementationBadge| image:: https://img.shields.io/pypi/implementation/tcod.svg?maxAge=2592000\n :target: https://pypi.python.org/pypi/tcod\n\n.. |LicenseBadge| image:: https://img.shields.io/pypi/l/tcod.svg?maxAge=2592000\n :target: https://github.com/HexDecimal/tcod/blob/master/LICENSE.txt\n\n.. |PyPI| image:: https://img.shields.io/pypi/v/tcod.svg?maxAge=10800\n :target: https://pypi.python.org/pypi/tcod\n\n.. |RTD| image:: https://readthedocs.org/projects/python-tcod/badge/?version=latest\n :target: http://python-tcod.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. |Codecov| image:: https://codecov.io/gh/libtcod/python-tcod/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/libtcod/python-tcod\n\n.. |Issues| image:: https://img.shields.io/github/issues/libtcod/python-tcod.svg?maxAge=3600\n :target: https://github.com/libtcod/python-tcod/issues\n\n.. |Pyup| image:: https://pyup.io/repos/github/libtcod/python-tcod/shield.svg\n :target: https://pyup.io/repos/github/libtcod/python-tcod/\n :alt: Updates\n\n.. |CommitsSinceLastRelease| image:: https://img.shields.io/github/commits-since/libtcod/python-tcod/latest\n :target: https://github.com/libtcod/python-tcod/blob/main/CHANGELOG.md\n",
"bugtrack_url": null,
"license": null,
"summary": "The official Python port of libtcod.",
"version": "19.3.1",
"project_urls": {
"Changelog": "https://github.com/libtcod/python-tcod/blob/main/CHANGELOG.md",
"Documentation": "https://python-tcod.readthedocs.io",
"Forum": "https://github.com/libtcod/python-tcod/discussions",
"Homepage": "https://github.com/libtcod/python-tcod",
"Source": "https://github.com/libtcod/python-tcod",
"Tracker": "https://github.com/libtcod/python-tcod/issues"
},
"split_keywords": [
"roguelike",
" cffi",
" unicode",
" libtcod",
" field-of-view",
" pathfinding"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c5a95b1ab6d38bca48c23d0a102a745a02e1fa8cbdd7aa9422447441468cd9ad",
"md5": "3b60693b19ae91dcdfbc3a9cf9051bdd",
"sha256": "4e76a51f2de3497b8cd02de4982ff409cb15dca9e537365906b82d80550199af"
},
"downloads": -1,
"filename": "tcod-19.3.1-cp310-abi3-macosx_10_13_universal2.whl",
"has_sig": false,
"md5_digest": "3b60693b19ae91dcdfbc3a9cf9051bdd",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 3850178,
"upload_time": "2025-08-02T03:58:26",
"upload_time_iso_8601": "2025-08-02T03:58:26.445545Z",
"url": "https://files.pythonhosted.org/packages/c5/a9/5b1ab6d38bca48c23d0a102a745a02e1fa8cbdd7aa9422447441468cd9ad/tcod-19.3.1-cp310-abi3-macosx_10_13_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1b57c83cad0052c61f9b7405c4ae2df09f70313ebcfa215b98710e6fa1087ed4",
"md5": "53e1b1cd147ba6d7a3f1043c001de8ac",
"sha256": "69e4945728f9b7871845dc55fff5731a4995df77d2f16d98cab52425005e41e8"
},
"downloads": -1,
"filename": "tcod-19.3.1-cp310-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "53e1b1cd147ba6d7a3f1043c001de8ac",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 8231858,
"upload_time": "2025-08-02T03:58:29",
"upload_time_iso_8601": "2025-08-02T03:58:29.007658Z",
"url": "https://files.pythonhosted.org/packages/1b/57/c83cad0052c61f9b7405c4ae2df09f70313ebcfa215b98710e6fa1087ed4/tcod-19.3.1-cp310-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8c74d8ad621d7a112f7643790eac288f15afd2983124a959fa6b2315df88a421",
"md5": "a2ee7a0556806a02ebe54b2f615cf1b3",
"sha256": "ee7f6d2c335d72f460b417799a27c641ebb4784ccfcdb02917eb1c8f86860403"
},
"downloads": -1,
"filename": "tcod-19.3.1-cp310-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "a2ee7a0556806a02ebe54b2f615cf1b3",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 8570423,
"upload_time": "2025-08-02T03:58:30",
"upload_time_iso_8601": "2025-08-02T03:58:30.998679Z",
"url": "https://files.pythonhosted.org/packages/8c/74/d8ad621d7a112f7643790eac288f15afd2983124a959fa6b2315df88a421/tcod-19.3.1-cp310-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b37b827f936de6a76e7b3c871327f7884b34547cd343f136c61ba68f32b4a282",
"md5": "962eaff5006d96846baf0f1b40508bcc",
"sha256": "61fd2251afb32973d979c308ab0567e3d5c8f05308b7188a85f5d8cc420170e9"
},
"downloads": -1,
"filename": "tcod-19.3.1-cp310-abi3-win32.whl",
"has_sig": false,
"md5_digest": "962eaff5006d96846baf0f1b40508bcc",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1598322,
"upload_time": "2025-08-02T03:58:33",
"upload_time_iso_8601": "2025-08-02T03:58:33.105200Z",
"url": "https://files.pythonhosted.org/packages/b3/7b/827f936de6a76e7b3c871327f7884b34547cd343f136c61ba68f32b4a282/tcod-19.3.1-cp310-abi3-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "29833eb4ae309e75a3df3f8e173853d900c6ef2e4e72947d62ded0d1c449d267",
"md5": "a95863d10b3521eb4d45bdc42b21ea6f",
"sha256": "3ffce466a70123671d49ad3a0487fdb5bdcdfba42cf3a22b3fc62c7c4fb9215d"
},
"downloads": -1,
"filename": "tcod-19.3.1-cp310-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "a95863d10b3521eb4d45bdc42b21ea6f",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1889223,
"upload_time": "2025-08-02T03:58:34",
"upload_time_iso_8601": "2025-08-02T03:58:34.881233Z",
"url": "https://files.pythonhosted.org/packages/29/83/3eb4ae309e75a3df3f8e173853d900c6ef2e4e72947d62ded0d1c449d267/tcod-19.3.1-cp310-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3e93dd32cd01648dd517cb96a8dc0efb04f7d103b6a3f78511ce893d9a6ff3c0",
"md5": "b4b8fd8b0b20760d5f7eebf5c5f35438",
"sha256": "063116cad5f40ddbfcd41eeb2bf44208b21b6009f2bc6f03c2f7276fdbe3cef7"
},
"downloads": -1,
"filename": "tcod-19.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "b4b8fd8b0b20760d5f7eebf5c5f35438",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 2716702,
"upload_time": "2025-08-02T03:58:36",
"upload_time_iso_8601": "2025-08-02T03:58:36.269108Z",
"url": "https://files.pythonhosted.org/packages/3e/93/dd32cd01648dd517cb96a8dc0efb04f7d103b6a3f78511ce893d9a6ff3c0/tcod-19.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b3d0b9fd7c89697f92a52867f548ce54d9f510936811b211170511b19a4ff868",
"md5": "1a074a21d13daf98b8fbce5d99a98949",
"sha256": "2ab24e2b7084f544ad85dbb45f292c3e54b4e01e73701b93de03bb154f5a0f51"
},
"downloads": -1,
"filename": "tcod-19.3.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "1a074a21d13daf98b8fbce5d99a98949",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 2677334,
"upload_time": "2025-08-02T03:58:38",
"upload_time_iso_8601": "2025-08-02T03:58:38.153012Z",
"url": "https://files.pythonhosted.org/packages/b3/d0/b9fd7c89697f92a52867f548ce54d9f510936811b211170511b19a4ff868/tcod-19.3.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5cdcd3f2a010eae50f8b5ef4c4da78b107dc3106176c234a0c519707e2fdb485",
"md5": "d32e027b95cdfb1b01b70ded29e13279",
"sha256": "a8cb5cfae5bd0a65ba603fe2a8d174ec95efa6acec847d622f6b1c19fc3c810a"
},
"downloads": -1,
"filename": "tcod-19.3.1-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "d32e027b95cdfb1b01b70ded29e13279",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 6872686,
"upload_time": "2025-08-02T03:58:39",
"upload_time_iso_8601": "2025-08-02T03:58:39.557440Z",
"url": "https://files.pythonhosted.org/packages/5c/dc/d3f2a010eae50f8b5ef4c4da78b107dc3106176c234a0c519707e2fdb485/tcod-19.3.1-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "050aaeaa87e52f1610db78ed071b4d39a615c240d7a437ec578d64dba88b9fc9",
"md5": "e0353a5657be45f2ce46e4b1ce833f18",
"sha256": "75409b27682015d804ed8b346971108816f13edd2b7dc0af256615cfce24ed35"
},
"downloads": -1,
"filename": "tcod-19.3.1-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "e0353a5657be45f2ce46e4b1ce833f18",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 7152432,
"upload_time": "2025-08-02T03:58:41",
"upload_time_iso_8601": "2025-08-02T03:58:41.514594Z",
"url": "https://files.pythonhosted.org/packages/05/0a/aeaa87e52f1610db78ed071b4d39a615c240d7a437ec578d64dba88b9fc9/tcod-19.3.1-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "45055a44a52d2762c4c63d5d2bf353fe1e73f57318e20eb50a85b70edf4b1b30",
"md5": "75ac0f85bf858978f1538994dee1f315",
"sha256": "49a1270a8f40ad2d39a627ed487f2d7ede54d3db261807b8f500e288740cbf8f"
},
"downloads": -1,
"filename": "tcod-19.3.1-pp310-pypy310_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "75ac0f85bf858978f1538994dee1f315",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 1654607,
"upload_time": "2025-08-02T03:58:43",
"upload_time_iso_8601": "2025-08-02T03:58:43.322967Z",
"url": "https://files.pythonhosted.org/packages/45/05/5a44a52d2762c4c63d5d2bf353fe1e73f57318e20eb50a85b70edf4b1b30/tcod-19.3.1-pp310-pypy310_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3dae536cd7c3022a5ba330a22d2e527eb8a2890903c35b75a9cc5c31b73354f9",
"md5": "1574f853e88f4831bae76e0c84c776a4",
"sha256": "e36af3c8d639c0aac35bc42407389f59e111b17d823e1f3ed5de4101f5959455"
},
"downloads": -1,
"filename": "tcod-19.3.1.tar.gz",
"has_sig": false,
"md5_digest": "1574f853e88f4831bae76e0c84c776a4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 845911,
"upload_time": "2025-08-02T03:58:45",
"upload_time_iso_8601": "2025-08-02T03:58:45.174311Z",
"url": "https://files.pythonhosted.org/packages/3d/ae/536cd7c3022a5ba330a22d2e527eb8a2890903c35b75a9cc5c31b73354f9/tcod-19.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-02 03:58:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "libtcod",
"github_project": "python-tcod",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "attrs",
"specs": [
[
">=",
"23.1.0"
]
]
},
{
"name": "cffi",
"specs": [
[
">=",
"1.15"
]
]
},
{
"name": "numpy",
"specs": [
[
">=",
"1.21.4"
]
]
},
{
"name": "pycparser",
"specs": [
[
">=",
"2.14"
]
]
},
{
"name": "requests",
"specs": [
[
">=",
"2.28.1"
]
]
},
{
"name": "setuptools",
"specs": [
[
">=",
"80.8.0"
]
]
},
{
"name": "types-cffi",
"specs": []
},
{
"name": "types-requests",
"specs": []
},
{
"name": "types-Pillow",
"specs": []
},
{
"name": "types-setuptools",
"specs": []
},
{
"name": "types-tabulate",
"specs": []
},
{
"name": "typing_extensions",
"specs": []
},
{
"name": "pcpp",
"specs": [
[
"==",
"1.30"
]
]
}
],
"tox": true,
"lcname": "tcod"
}