.. 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/14/49/e85883699eca2c00d622be024ab86196aea13467ab5587e412003b73fe0c/tcod-19.4.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.4.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": "5a9cabb0a09e1f2858971e62a418977f4bd38af84a9c36f2fe916b8dc0deb5cc",
"md5": "4f09f0c89fff9c11c2eccfb82107051b",
"sha256": "9186b15c6106c24701cf09554b526a8d3c081cf25d7eb3437a324ee139291942"
},
"downloads": -1,
"filename": "tcod-19.4.1-cp310-abi3-macosx_10_13_universal2.whl",
"has_sig": false,
"md5_digest": "4f09f0c89fff9c11c2eccfb82107051b",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 3850514,
"upload_time": "2025-08-27T12:17:39",
"upload_time_iso_8601": "2025-08-27T12:17:39.460383Z",
"url": "https://files.pythonhosted.org/packages/5a/9c/abb0a09e1f2858971e62a418977f4bd38af84a9c36f2fe916b8dc0deb5cc/tcod-19.4.1-cp310-abi3-macosx_10_13_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6782226e6f6745061286e766309cff28b27509aa787c3837efb0d438e85a574f",
"md5": "9844ee6cfd6141df0b9cea7a17bbabf0",
"sha256": "65ead9b90ce508918bac70328196839272256c4245949d3dd12937120f332768"
},
"downloads": -1,
"filename": "tcod-19.4.1-cp310-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "9844ee6cfd6141df0b9cea7a17bbabf0",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 8234295,
"upload_time": "2025-08-27T12:17:41",
"upload_time_iso_8601": "2025-08-27T12:17:41.947154Z",
"url": "https://files.pythonhosted.org/packages/67/82/226e6f6745061286e766309cff28b27509aa787c3837efb0d438e85a574f/tcod-19.4.1-cp310-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "90e179b6f310e7af80701c48c34827418ad09289677b8247570f988a2ad98c48",
"md5": "e2f5a62b3f12a70fb9b2536ba90361a7",
"sha256": "766e9994036f4544ce6ceb21e27c5204f8e1bd7973a982a3d58380e72d743b23"
},
"downloads": -1,
"filename": "tcod-19.4.1-cp310-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "e2f5a62b3f12a70fb9b2536ba90361a7",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 8572534,
"upload_time": "2025-08-27T12:17:43",
"upload_time_iso_8601": "2025-08-27T12:17:43.881122Z",
"url": "https://files.pythonhosted.org/packages/90/e1/79b6f310e7af80701c48c34827418ad09289677b8247570f988a2ad98c48/tcod-19.4.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": "d94e3016b49741f7b0c361f2a6537a9b254e1e931ae79ea2aace8f28a1b062b5",
"md5": "2cce9285ec23f516ac0c167006273e2e",
"sha256": "db91dd961c235f45b8c55f418ade92643d80299d07bdac39b215948347c245d6"
},
"downloads": -1,
"filename": "tcod-19.4.1-cp310-abi3-win32.whl",
"has_sig": false,
"md5_digest": "2cce9285ec23f516ac0c167006273e2e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1598655,
"upload_time": "2025-08-27T12:17:45",
"upload_time_iso_8601": "2025-08-27T12:17:45.571230Z",
"url": "https://files.pythonhosted.org/packages/d9/4e/3016b49741f7b0c361f2a6537a9b254e1e931ae79ea2aace8f28a1b062b5/tcod-19.4.1-cp310-abi3-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6b5d8550cbab8afa5001ef1ca7310ed6921b9d58b8217f70f7a9e0f21cf239b3",
"md5": "121a8b82e923fe48c9bcf9e440c7850e",
"sha256": "73db789514c95085e3e24754c9a6c762c61dad2ccb9f168ac52713e0599a1cb8"
},
"downloads": -1,
"filename": "tcod-19.4.1-cp310-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "121a8b82e923fe48c9bcf9e440c7850e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1889551,
"upload_time": "2025-08-27T12:17:46",
"upload_time_iso_8601": "2025-08-27T12:17:46.919553Z",
"url": "https://files.pythonhosted.org/packages/6b/5d/8550cbab8afa5001ef1ca7310ed6921b9d58b8217f70f7a9e0f21cf239b3/tcod-19.4.1-cp310-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f6d91ee441d5769f4f605a29499c064a876e391cfbdc22d4d47c6db63e897fe1",
"md5": "e6e3e75cb455c3b04e7e60aa9da13c2b",
"sha256": "56c5f263a8c0bd243f20fa902237d1b551b41a560f384cbcc498d7665f5521fe"
},
"downloads": -1,
"filename": "tcod-19.4.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "e6e3e75cb455c3b04e7e60aa9da13c2b",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 2717157,
"upload_time": "2025-08-27T12:17:48",
"upload_time_iso_8601": "2025-08-27T12:17:48.246972Z",
"url": "https://files.pythonhosted.org/packages/f6/d9/1ee441d5769f4f605a29499c064a876e391cfbdc22d4d47c6db63e897fe1/tcod-19.4.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bb0158170abdecb98cae568328c3ff31f26c422895b8fcb9fd5808592ac0e228",
"md5": "bcdc9a63c9c78cb79cc704f44ffd4e23",
"sha256": "e366a9cacb8fc4332276528fdd3c72f0cfbe6c820f94b62008a273ee5ef4eacb"
},
"downloads": -1,
"filename": "tcod-19.4.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "bcdc9a63c9c78cb79cc704f44ffd4e23",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 2677646,
"upload_time": "2025-08-27T12:17:50",
"upload_time_iso_8601": "2025-08-27T12:17:50.092415Z",
"url": "https://files.pythonhosted.org/packages/bb/01/58170abdecb98cae568328c3ff31f26c422895b8fcb9fd5808592ac0e228/tcod-19.4.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ca94bf5d2124d4f8ff78d2062778a285cfd31c3d768f7d5959f3247c227f52be",
"md5": "6ce445150fc2a0685b270ae92790e474",
"sha256": "c79da918411c00a24f7f4ea22a6eba96d40398dcbafe895adf8f2ceb302eddf9"
},
"downloads": -1,
"filename": "tcod-19.4.1-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "6ce445150fc2a0685b270ae92790e474",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 6875173,
"upload_time": "2025-08-27T12:17:51",
"upload_time_iso_8601": "2025-08-27T12:17:51.862299Z",
"url": "https://files.pythonhosted.org/packages/ca/94/bf5d2124d4f8ff78d2062778a285cfd31c3d768f7d5959f3247c227f52be/tcod-19.4.1-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1f594abe0634ab59f70b8fbaa654d01769f3733bdcfd61b8e4d33b6af38d1610",
"md5": "6a900fb468b501fc1226596dd5d0a08b",
"sha256": "2560ef055e631c099b20a2af2e3bd38404dbc9337682102a603b346eecad3b67"
},
"downloads": -1,
"filename": "tcod-19.4.1-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "6a900fb468b501fc1226596dd5d0a08b",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 7154453,
"upload_time": "2025-08-27T12:17:53",
"upload_time_iso_8601": "2025-08-27T12:17:53.432978Z",
"url": "https://files.pythonhosted.org/packages/1f/59/4abe0634ab59f70b8fbaa654d01769f3733bdcfd61b8e4d33b6af38d1610/tcod-19.4.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": "1449e85883699eca2c00d622be024ab86196aea13467ab5587e412003b73fe0c",
"md5": "23b9896c1f647430d630fd1bc3a00266",
"sha256": "7fd16a83d5f967707ef78fdc7834b30aeb2716d36a3f56f8872219416ad4e9b2"
},
"downloads": -1,
"filename": "tcod-19.4.1.tar.gz",
"has_sig": false,
"md5_digest": "23b9896c1f647430d630fd1bc3a00266",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 854179,
"upload_time": "2025-08-27T12:37:47",
"upload_time_iso_8601": "2025-08-27T12:37:47.361346Z",
"url": "https://files.pythonhosted.org/packages/14/49/e85883699eca2c00d622be024ab86196aea13467ab5587e412003b73fe0c/tcod-19.4.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-27 12:37:47",
"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"
}