celshast 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. celshast-0.0.1/CODE_OF_CONDUCT.md +61 -0
  2. celshast-0.0.1/CONTRIBUTING.md +57 -0
  3. celshast-0.0.1/Justfile +11 -0
  4. celshast-0.0.1/LICENSE +19 -0
  5. celshast-0.0.1/PKG-INFO +518 -0
  6. celshast-0.0.1/README.md +488 -0
  7. celshast-0.0.1/docs/_static/demo-dark.png +0 -0
  8. celshast-0.0.1/docs/_static/demo-light.png +0 -0
  9. celshast-0.0.1/docs/_static/demo.png +0 -0
  10. celshast-0.0.1/docs/_static/gymnasium-text.png +0 -0
  11. celshast-0.0.1/docs/_static/pied-piper-admonition.css +15 -0
  12. celshast-0.0.1/docs/_static/readthedocs-dummy.js +9 -0
  13. celshast-0.0.1/docs/changelog.md +566 -0
  14. celshast-0.0.1/docs/conf.py +151 -0
  15. celshast-0.0.1/docs/contributing/design.md +23 -0
  16. celshast-0.0.1/docs/contributing/index.md +26 -0
  17. celshast-0.0.1/docs/contributing/internals.md +71 -0
  18. celshast-0.0.1/docs/contributing/workflow.md +123 -0
  19. celshast-0.0.1/docs/customisation/announcement.md +15 -0
  20. celshast-0.0.1/docs/customisation/colors.md +48 -0
  21. celshast-0.0.1/docs/customisation/edit-button.md +47 -0
  22. celshast-0.0.1/docs/customisation/fonts.md +18 -0
  23. celshast-0.0.1/docs/customisation/footer.md +102 -0
  24. celshast-0.0.1/docs/customisation/index.md +109 -0
  25. celshast-0.0.1/docs/customisation/injecting.md +30 -0
  26. celshast-0.0.1/docs/customisation/landing-page.md +18 -0
  27. celshast-0.0.1/docs/customisation/logo.md +39 -0
  28. celshast-0.0.1/docs/customisation/sidebar-title.md +17 -0
  29. celshast-0.0.1/docs/customisation/sidebar.md +89 -0
  30. celshast-0.0.1/docs/customisation/toc.md +25 -0
  31. celshast-0.0.1/docs/index.md +38 -0
  32. celshast-0.0.1/docs/kitchen-sink/admonitions.rst +102 -0
  33. celshast-0.0.1/docs/kitchen-sink/api.rst +37 -0
  34. celshast-0.0.1/docs/kitchen-sink/blocks.rst +282 -0
  35. celshast-0.0.1/docs/kitchen-sink/generic.rst +275 -0
  36. celshast-0.0.1/docs/kitchen-sink/images.rst +89 -0
  37. celshast-0.0.1/docs/kitchen-sink/index.md +20 -0
  38. celshast-0.0.1/docs/kitchen-sink/lists.rst +276 -0
  39. celshast-0.0.1/docs/kitchen-sink/really-long.md +209 -0
  40. celshast-0.0.1/docs/kitchen-sink/sphinx-design.md +172 -0
  41. celshast-0.0.1/docs/kitchen-sink/structure.rst +104 -0
  42. celshast-0.0.1/docs/kitchen-sink/tables.rst +111 -0
  43. celshast-0.0.1/docs/kitchen-sink/typography.rst +66 -0
  44. celshast-0.0.1/docs/license.rst +7 -0
  45. celshast-0.0.1/docs/quickstart.md +6 -0
  46. celshast-0.0.1/docs/recommendations.md +38 -0
  47. celshast-0.0.1/docs/reference/admonitions.md +226 -0
  48. celshast-0.0.1/docs/reference/api.md +32 -0
  49. celshast-0.0.1/docs/reference/code-blocks.md +52 -0
  50. celshast-0.0.1/docs/reference/hyperlinks.md +27 -0
  51. celshast-0.0.1/docs/reference/images.md +115 -0
  52. celshast-0.0.1/docs/reference/index.md +22 -0
  53. celshast-0.0.1/docs/reference/lists.md +63 -0
  54. celshast-0.0.1/docs/reference/tables.md +61 -0
  55. celshast-0.0.1/docs/reference/tabs.md +64 -0
  56. celshast-0.0.1/docs/reference/text-formatting.md +37 -0
  57. celshast-0.0.1/docs/requirements.txt +5 -0
  58. celshast-0.0.1/docs/stability.md +37 -0
  59. celshast-0.0.1/mise.toml +5 -0
  60. celshast-0.0.1/noxfile.py +158 -0
  61. celshast-0.0.1/package-lock.json +3291 -0
  62. celshast-0.0.1/package.json +18 -0
  63. celshast-0.0.1/postcss.config.js +3 -0
  64. celshast-0.0.1/pyproject.toml +72 -0
  65. celshast-0.0.1/src/celshast/__init__.py +377 -0
  66. celshast-0.0.1/src/celshast/_demo_module.py +54 -0
  67. celshast-0.0.1/src/celshast/assets/scripts/celshast.js +175 -0
  68. celshast-0.0.1/src/celshast/assets/scripts/gumshoe-patched.js +466 -0
  69. celshast-0.0.1/src/celshast/assets/styles/_scaffold.sass +460 -0
  70. celshast-0.0.1/src/celshast/assets/styles/_shame.sass +12 -0
  71. celshast-0.0.1/src/celshast/assets/styles/base/_index.sass +4 -0
  72. celshast-0.0.1/src/celshast/assets/styles/base/_print.sass +43 -0
  73. celshast-0.0.1/src/celshast/assets/styles/base/_screen-readers.sass +13 -0
  74. celshast-0.0.1/src/celshast/assets/styles/base/_theme.sass +55 -0
  75. celshast-0.0.1/src/celshast/assets/styles/base/_typography.sass +93 -0
  76. celshast-0.0.1/src/celshast/assets/styles/celshast-extensions.sass +1 -0
  77. celshast-0.0.1/src/celshast/assets/styles/celshast.sass +9 -0
  78. celshast-0.0.1/src/celshast/assets/styles/components/_footer.sass +109 -0
  79. celshast-0.0.1/src/celshast/assets/styles/components/_index.sass +4 -0
  80. celshast-0.0.1/src/celshast/assets/styles/components/_search.sass +17 -0
  81. celshast-0.0.1/src/celshast/assets/styles/components/_sidebar.sass +231 -0
  82. celshast-0.0.1/src/celshast/assets/styles/components/_table_of_contents.sass +65 -0
  83. celshast-0.0.1/src/celshast/assets/styles/content/_admonitions.sass +77 -0
  84. celshast-0.0.1/src/celshast/assets/styles/content/_api.sass +96 -0
  85. celshast-0.0.1/src/celshast/assets/styles/content/_blocks.sass +7 -0
  86. celshast-0.0.1/src/celshast/assets/styles/content/_captions.sass +19 -0
  87. celshast-0.0.1/src/celshast/assets/styles/content/_code.sass +137 -0
  88. celshast-0.0.1/src/celshast/assets/styles/content/_footnotes.sass +45 -0
  89. celshast-0.0.1/src/celshast/assets/styles/content/_gui-labels.sass +8 -0
  90. celshast-0.0.1/src/celshast/assets/styles/content/_images.sass +37 -0
  91. celshast-0.0.1/src/celshast/assets/styles/content/_index.sass +16 -0
  92. celshast-0.0.1/src/celshast/assets/styles/content/_indexes.sass +12 -0
  93. celshast-0.0.1/src/celshast/assets/styles/content/_lists.sass +67 -0
  94. celshast-0.0.1/src/celshast/assets/styles/content/_math.sass +21 -0
  95. celshast-0.0.1/src/celshast/assets/styles/content/_misc.sass +53 -0
  96. celshast-0.0.1/src/celshast/assets/styles/content/_rubrics.sass +13 -0
  97. celshast-0.0.1/src/celshast/assets/styles/content/_sidebar.sass +28 -0
  98. celshast-0.0.1/src/celshast/assets/styles/content/_tables.sass +42 -0
  99. celshast-0.0.1/src/celshast/assets/styles/content/_target.sass +81 -0
  100. celshast-0.0.1/src/celshast/assets/styles/extensions/_copybutton.sass +45 -0
  101. celshast-0.0.1/src/celshast/assets/styles/extensions/_farama.sass +714 -0
  102. celshast-0.0.1/src/celshast/assets/styles/extensions/_index.sass +6 -0
  103. celshast-0.0.1/src/celshast/assets/styles/extensions/_readthedocs.sass +76 -0
  104. celshast-0.0.1/src/celshast/assets/styles/extensions/_sphinx-design.sass +51 -0
  105. celshast-0.0.1/src/celshast/assets/styles/extensions/_sphinx-inline-tabs.sass +18 -0
  106. celshast-0.0.1/src/celshast/assets/styles/extensions/_sphinx-panels.sass +18 -0
  107. celshast-0.0.1/src/celshast/assets/styles/variables/_admonitions.scss +48 -0
  108. celshast-0.0.1/src/celshast/assets/styles/variables/_colors.scss +192 -0
  109. celshast-0.0.1/src/celshast/assets/styles/variables/_fonts.scss +41 -0
  110. celshast-0.0.1/src/celshast/assets/styles/variables/_icons.scss +32 -0
  111. celshast-0.0.1/src/celshast/assets/styles/variables/_index.sass +8 -0
  112. celshast-0.0.1/src/celshast/assets/styles/variables/_layout.scss +9 -0
  113. celshast-0.0.1/src/celshast/assets/styles/variables/_spacing.scss +43 -0
  114. celshast-0.0.1/src/celshast/farama_directives.py +42 -0
  115. celshast-0.0.1/src/celshast/gen_tutorials.py +64 -0
  116. celshast-0.0.1/src/celshast/navigation.py +87 -0
  117. celshast-0.0.1/src/celshast/sphinxext.py +95 -0
  118. celshast-0.0.1/src/celshast/theme/celshast/base.html +483 -0
  119. celshast-0.0.1/src/celshast/theme/celshast/components/edit-this-page.html +26 -0
  120. celshast-0.0.1/src/celshast/theme/celshast/domainindex.html +51 -0
  121. celshast-0.0.1/src/celshast/theme/celshast/genindex.html +58 -0
  122. celshast-0.0.1/src/celshast/theme/celshast/globaltoc.html +4 -0
  123. celshast-0.0.1/src/celshast/theme/celshast/layout.html +16 -0
  124. celshast-0.0.1/src/celshast/theme/celshast/localtoc.html +4 -0
  125. celshast-0.0.1/src/celshast/theme/celshast/page.html +262 -0
  126. celshast-0.0.1/src/celshast/theme/celshast/partials/_head_css_variables.html +28 -0
  127. celshast-0.0.1/src/celshast/theme/celshast/partials/icons.html +61 -0
  128. celshast-0.0.1/src/celshast/theme/celshast/search.html +29 -0
  129. celshast-0.0.1/src/celshast/theme/celshast/sidebar/brand.html +31 -0
  130. celshast-0.0.1/src/celshast/theme/celshast/sidebar/donate.html +7 -0
  131. celshast-0.0.1/src/celshast/theme/celshast/sidebar/ethical-ads.html +10 -0
  132. celshast-0.0.1/src/celshast/theme/celshast/sidebar/navigation.html +3 -0
  133. celshast-0.0.1/src/celshast/theme/celshast/sidebar/rtd-versions.html +34 -0
  134. celshast-0.0.1/src/celshast/theme/celshast/sidebar/scroll-end.html +1 -0
  135. celshast-0.0.1/src/celshast/theme/celshast/sidebar/scroll-start.html +1 -0
  136. celshast-0.0.1/src/celshast/theme/celshast/sidebar/search.html +6 -0
  137. celshast-0.0.1/src/celshast/theme/celshast/sidebar/title.html +7 -0
  138. celshast-0.0.1/src/celshast/theme/celshast/sidebar/variant-selector.html +33 -0
  139. celshast-0.0.1/src/celshast/theme/celshast/static/.gitignore +7 -0
  140. celshast-0.0.1/src/celshast/theme/celshast/static/img/MAgent2-white.svg +131 -0
  141. celshast-0.0.1/src/celshast/theme/celshast/static/img/autorom-white.svg +112 -0
  142. celshast-0.0.1/src/celshast/theme/celshast/static/img/d4rl-white.svg +107 -0
  143. celshast-0.0.1/src/celshast/theme/celshast/static/img/farama-logo-header.svg +115 -0
  144. celshast-0.0.1/src/celshast/theme/celshast/static/img/farama_solid_white.svg +95 -0
  145. celshast-0.0.1/src/celshast/theme/celshast/static/img/gymnasium-white.svg +89 -0
  146. celshast-0.0.1/src/celshast/theme/celshast/static/img/gymrobotics-white.svg +165 -0
  147. celshast-0.0.1/src/celshast/theme/celshast/static/img/jumpy-white.svg +156 -0
  148. celshast-0.0.1/src/celshast/theme/celshast/static/img/kabuki-white.svg +160 -0
  149. celshast-0.0.1/src/celshast/theme/celshast/static/img/microrts-white.svg +179 -0
  150. celshast-0.0.1/src/celshast/theme/celshast/static/img/minigrid-white.svg +136 -0
  151. celshast-0.0.1/src/celshast/theme/celshast/static/img/miniworld-white.svg +184 -0
  152. celshast-0.0.1/src/celshast/theme/celshast/static/img/pettingzoo-white.svg +169 -0
  153. celshast-0.0.1/src/celshast/theme/celshast/static/img/procgen2-white.svg +151 -0
  154. celshast-0.0.1/src/celshast/theme/celshast/static/img/supersuit-white.svg +80 -0
  155. celshast-0.0.1/src/celshast/theme/celshast/static/img/tinyscaler-white.svg +123 -0
  156. celshast-0.0.1/src/celshast/theme/celshast/static/versioning/versioning_menu.html +222 -0
  157. celshast-0.0.1/src/celshast/theme/celshast/theme.conf +35 -0
  158. celshast-0.0.1/starter_kit/.gitignore +21 -0
  159. celshast-0.0.1/starter_kit/404.md +7 -0
  160. celshast-0.0.1/starter_kit/Makefile +20 -0
  161. celshast-0.0.1/starter_kit/README.md +5 -0
  162. celshast-0.0.1/starter_kit/_scripts/ipynb_to_gallery.py +63 -0
  163. celshast-0.0.1/starter_kit/_scripts/move_404.py +14 -0
  164. celshast-0.0.1/starter_kit/_static/img/PROJECT-github.png +0 -0
  165. celshast-0.0.1/starter_kit/_static/img/PROJECT_black.svg +80 -0
  166. celshast-0.0.1/starter_kit/_static/img/PROJECT_white.svg +81 -0
  167. celshast-0.0.1/starter_kit/_static/img/favicon.png +0 -0
  168. celshast-0.0.1/starter_kit/conf.py +92 -0
  169. celshast-0.0.1/starter_kit/content/basic_usage.md +13 -0
  170. celshast-0.0.1/starter_kit/index.md +50 -0
  171. celshast-0.0.1/starter_kit/make.bat +35 -0
  172. celshast-0.0.1/starter_kit/requirements.txt +5 -0
  173. celshast-0.0.1/webpack.config.js +33 -0
@@ -0,0 +1,61 @@
1
+ # Farama Foundation Code of Conduct
2
+
3
+ The Farama Foundation is dedicated to providing a harassment-free experience for
4
+ everyone, regardless of gender, gender identity and expression, sexual
5
+ orientation, disability, physical appearance, body size, age, race, or
6
+ religion. We do not tolerate harassment of participants in any form.
7
+
8
+ This code of conduct applies to all Farama Foundation repositories (including Gist
9
+ comments) both online and off. Anyone who violates this code of
10
+ conduct may be sanctioned or expelled from these spaces at the
11
+ discretion of the moderators.
12
+
13
+ We may add additional rules over time, which will be made clearly
14
+ available to participants. Participants are responsible for knowing
15
+ and abiding by these rules.
16
+
17
+ ## Our Standards
18
+
19
+ Members of the Farama Foundation community are **open**, **inclusive**, and **respectful**.
20
+ Examples of behavior that contributes to a positive environment for our community include:
21
+
22
+ - **Being open**. Members of the community are open to collaboration, whether it's on issues, PRs, problems, or otherwise
23
+ - **Focusing on what is best for the community**. We're respectful of the processes set forth in the community, and we work within them to
24
+ improve the community.
25
+ - **Being respectful of differing viewpoints and experiences.** We're receptive to constructive comments and criticism,
26
+ as the experiences and skill sets of other members contribute to the whole of our efforts.
27
+ - **Showing empathy.** We're attentive in our communications, and we're tactful when approaching differing views.
28
+ - **Being respectful.** We're respectful of differing opinions, viewpoints, experiences, and efforts.
29
+ - **Gracefully accepting constructive criticism.** When we disagree, we are courteous in raising our issues.
30
+ - **Using welcoming and inclusive language.** We're accepting of all who wish to take part in our activities, fostering
31
+ an environment where anyone can participate and everyone can make a difference.
32
+
33
+ Examples of unacceptable behavior include:
34
+
35
+ - Harassment of any participants in any form.
36
+ - The use of sexual language or imagery, and sexual attention or advances of any kind.
37
+ - Insults, put downs, or jokes that are based upon stereotypes, that are exclusionary, or that hold others up for ridicule.
38
+ - Publishing others' private information, such as a physical or email address, without explicit permission.
39
+ - Incitement of violence or harassment towards any individual, including encouraging a person to commit suicide or to engage in self-harm.
40
+ - Sustained disruption of online community discussions, in-person presentations, or other in-person events.
41
+ - Creating additional online accounts in order to harass another person or circumvent a ban
42
+ - Other conduct which could reasonably be considered inappropriate in a professional setting including people of many different backgrounds.
43
+
44
+ Members asked to stop any inappropriate behavior are expected to comply immediately.
45
+
46
+ ## Consequences
47
+
48
+ If a participant engages in behavior that violates this code of conduct, the Farama Foundation team may take any action they deem
49
+ appropriate, including warning the offender or expulsion from the community.
50
+
51
+ Thank you for helping make this a welcoming, friendly community for everyone.
52
+
53
+ ## License
54
+
55
+ This Code of Conduct is licensed under the `Creative Commons Attribution-ShareAlike 3.0 Unported License
56
+ <https://creativecommons.org/licenses/by-sa/3.0/>`\_.
57
+
58
+ ## Attribution
59
+
60
+ This Code of Conduct is adapted from `Python's Code of Conduct <https://www.python.org/psf/conduct/>`_, which is under a `Creative Commons License
61
+ <https://creativecommons.org/licenses/by-sa/3.0/>`_.
@@ -0,0 +1,57 @@
1
+ # Contribute to Farama projects documentation
2
+
3
+ Thank you for considering contributing to our documentation! A good
4
+ documentation is vital for any project and empowers those that use it.
5
+
6
+ Our documentation is written in [MyST (Markedly Structured Text)](https://myst-parser.readthedocs.io/en/latest/) and built using [Sphinx](https://www.sphinx-doc.org/en/master/).
7
+
8
+ Here are some important information about how to contribute to our documentation:
9
+
10
+ - [Build Documentation](./README.md#build-documentation)
11
+ - [Write Documentation](#write-documentation)
12
+ - [Write Environments Documentation](#write-environments-documentation)
13
+ - [Write Tutorials](#write-tutorials)
14
+ - [Sphinx Theme options](./README.md#theme-options)
15
+ - [Frontmatter options](./README.md#frontmatter)
16
+ - [Create Documentation Website](#create-a-documentation-website)
17
+
18
+ ## Write Documentation
19
+
20
+ Here are some guidelines to follow when writing documentation:
21
+
22
+ 1. Use **clear** and **concise** language. Avoid jargon and technical terms when possible.
23
+ 2. Use **Google-style** Python docstrings.
24
+ 3. Use the reStructuredText markup language inside docstrings.
25
+ 4. Use [`autodoc`](https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html) to automatically generate documentation from your code.
26
+ 5. Use the MyST markdown (using the .md file extension) for documentation files inside the `docs/` directory.
27
+ 6. Use scripts to generate environments documentation.
28
+ 7. Use [`sphinx-gallery`](https://sphinx-gallery.github.io/stable/index.html) to include tutorials in your documentation.
29
+
30
+ ## Write Environments Documentation
31
+
32
+ Environment documentation varies from project to project and sometimes from environment type.
33
+
34
+ Some environments, for example, Atari, require you to directly edit the Markdown file, however those are rare situations that should be **avoided**.
35
+
36
+ For most cases environments should be documented using a docstring inside the entry point class, [example](https://github.com/Farama-Foundation/Gymnasium/blob/5bb67ee69d8fc21fafe4147fdcafa1e1daf158c4/gymnasium/envs/box2d/bipedal_walker.py#L104). To automatically generate the documentation pages, i.e. `.md` files, you should use a python script, for example, [docs/scripts/gen_mds.py](https://github.com/Farama-Foundation/Gymnasium-Robotics/blob/main/docs/scripts/gen_mds.py).
37
+
38
+ ## Write Tutorials
39
+
40
+ We use Sphinx-Gallery to build the tutorials inside the docs/tutorials directory.
41
+
42
+ To convert Jupyter Notebooks to Python tutorials you can use [this script](./starter_kit/_scripts/ipynb_to_gallery.py).
43
+ To convert cells outputting static images, like `<img src="../_static/img/tutorials/my_image.png" alt="My image description">`, they need to be in single Mardown cell and have an `alt` text.
44
+
45
+ If you want Sphinx-Gallery to execute the tutorial (which adds outputs and plots) then the file name should start with run\_. Note that this adds to the build time so make sure the script doesn't take more than a few seconds to execute.
46
+
47
+ Go to [Sphinx-Gallery documentation](https://sphinx-gallery.github.io/stable/syntax.html) for more information.
48
+
49
+ ## Create a Documentation website
50
+
51
+ - Create a directory named `docs` in the root directory of the project's repository
52
+ - **Copy** the contents inside the [start_kit](./starter_kit/) directory (you can use [donwload-directory.github.io](https://download-directory.github.io/?url=https%3A%2F%2Fgithub.com%2FFarama-Foundation%2FCelshast%2Ftree%2Fmain%2Fstarter_kit))
53
+ - **Paste** them inside the new `docs` directory
54
+ - Replace `<PROJECT>` and `<PROJECT_LOW>` with the name of the project, e.g. Gymnasiun would replace `<PROJECT>` with `Gymnasium` and `<PROJECT_LOW>` with `gymnasium`. You will find these placeholders inside files and in file names without the angle brackets.
55
+ - Replace the images and svg files inside `_static/img` with the ones corresponding to the project.
56
+ - Add content to the documentation.
57
+ - Add GitHub Actions workflows to build the website. Go [here](./README.md#workflow-to-build-docs) for more information.
@@ -0,0 +1,11 @@
1
+ default:
2
+ @just --list
3
+
4
+ serve host="0.0.0.0" port="8000":
5
+ uvx nox -s docs-live -- --host {{host}} --port {{port}}
6
+
7
+ build:
8
+ uvx nox -s docs
9
+
10
+ lint:
11
+ uvx nox -s lint
celshast-0.0.1/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2020 Pradyun Gedam <mail@pradyunsg.me> & Copyright (c) 2023 Farama Foundation
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to
5
+ deal in the Software without restriction, including without limitation the
6
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
+ sell copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19
+ IN THE SOFTWARE.
@@ -0,0 +1,518 @@
1
+ Metadata-Version: 2.4
2
+ Name: celshast
3
+ Version: 0.0.1
4
+ Summary: A Farama Foundation Sphinx documentation theme based on Furo.
5
+ Author-Email: Farama Foundation <contact@farama.org>, Pradyun Gedam <mail@pradyunsg.me>
6
+ License-File: LICENSE
7
+ Classifier: Framework :: Sphinx
8
+ Classifier: Framework :: Sphinx :: Theme
9
+ Classifier: Development Status :: 5 - Production/Stable
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Environment :: Web Environment
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.8
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Topic :: Documentation
21
+ Classifier: Topic :: Software Development :: Documentation
22
+ Project-URL: GitHub, https://github.com/Farama-Foundation/Celshast
23
+ Requires-Python: >=3.8
24
+ Requires-Dist: beautifulsoup4
25
+ Requires-Dist: sphinx<8.0,>=6.0
26
+ Requires-Dist: sphinx-basic-ng
27
+ Requires-Dist: pygments>=2.7
28
+ Requires-Dist: matplotlib
29
+ Description-Content-Type: text/markdown
30
+
31
+ # Celshast
32
+
33
+ A [Farama Foundation](https://farama.org/) <a href="https://www.sphinx-doc.org/">Sphinx</a> documentation theme based on the [Furo template](https://github.com/pradyunsg/furo).
34
+
35
+ To learn how to contribute to our projects' documentation go to [CONTRIBUTING.md](CONTRIBUTING.md)
36
+
37
+ ## Install Celshast
38
+
39
+ ```
40
+ pip install celshast
41
+ ```
42
+
43
+ Or, for development:
44
+
45
+ ```
46
+ git clone https://github.com/Farama-Foundation/Celshast.git
47
+ cd Celshast
48
+ pip install -e .
49
+ ```
50
+
51
+ **Add to documentation (conf.py)**
52
+
53
+ ```
54
+ html_theme = "celshast"
55
+ ```
56
+
57
+ ## Build Documentation
58
+
59
+ To build and serve the documentation website you should go to the `docs/` directory and choose one of the following options.
60
+
61
+ **Option 1: Build once**
62
+
63
+ Build:
64
+
65
+ ```
66
+ make dirhtml
67
+ OR
68
+ sphinx-build -b dirhtml . _build
69
+ ```
70
+
71
+ Serve the generated website using python (you can choose other http servers):
72
+
73
+ ```
74
+ python -m http.server 8001 --directory _build
75
+ ```
76
+
77
+ **Option 2: Automatically build when a change is made**
78
+
79
+ Install `sphinx-autobuild`
80
+
81
+ ```
82
+ pip install sphinx-autobuild
83
+ ```
84
+
85
+ Build and serve using:
86
+
87
+ ```
88
+ sphinx-autobuild -b dirhtml . _build
89
+ ```
90
+
91
+ ### Workflow to Build Docs
92
+
93
+ Our docs are hosted using GitHub Pages (using gh-pages branch) and we use a GitHub Actions workflow to build the website every time a change is made to the repository.
94
+
95
+ The following code block shows an example of a `yaml` file usually named `.github/workflows/build-docs.yml` that defines the workflow.
96
+
97
+ ```yaml
98
+ name: Deploy Docs
99
+ on:
100
+ push:
101
+ branches: [master]
102
+
103
+ permissions:
104
+ contents: write
105
+
106
+ jobs:
107
+ docs:
108
+ name: Generate Website
109
+ runs-on: ubuntu-latest
110
+
111
+ steps:
112
+ - uses: actions/checkout@v3
113
+ - uses: actions/setup-python@v4
114
+ with:
115
+ python-version: "3.9"
116
+
117
+ - name: Install docs dependencies
118
+ run: pip install -r docs/requirements.txt
119
+
120
+ - name: Install <Project>
121
+ run: pip install -e .
122
+
123
+ - name: Run some auxiliary scripts, e.g. build environments docs
124
+ run: python docs/_scripts/gen_envs_mds.py
125
+
126
+ - name: Build
127
+ run: sphinx-build -b dirhtml -v docs _build
128
+
129
+ - name: Move 404
130
+ run: mv _build/404/index.html _build/404.html
131
+
132
+ - name: Update 404 links
133
+ run: python docs/_scripts/move_404.py _build/404.html
134
+
135
+ - name: Remove .doctrees
136
+ run: rm -r _build/.doctrees
137
+
138
+ - name: Upload to GitHub Pages
139
+ uses: JamesIves/github-pages-deploy-action@v4
140
+ with:
141
+ folder: _build
142
+ ```
143
+
144
+ ### Workflow to Build Docs with Versioning
145
+
146
+ Celshast supports documentation versioning using an HTML menu and GitHub Actions. Every page has a JS script that injects an `html` document with the [versions menu](https://github.com/Farama-Foundation/Celshast/blob/main/src/celshast/theme/celshast/static/versioning/versioning_menu.html), which allows updating older versions without rebuilding.
147
+
148
+ To enable the menu set the theme option to true in the `conf.py` file:
149
+
150
+ ```python
151
+ html_theme_options = {
152
+ "versioning": True,
153
+ }
154
+ ```
155
+
156
+ With versioning enabled you should have three different GitHub Actions workflows (the names are just an example):
157
+
158
+ - `build-docs-dev.yml` - Build the docs based on the latest commit in the `main` branch, which is an unstable version. The build will be published in the folder `main` at the `gh-pages` branch.
159
+
160
+ ```yaml
161
+ name: Build main branch documentation website
162
+ on:
163
+ push:
164
+ branches: [main]
165
+ permissions:
166
+ contents: write
167
+ jobs:
168
+ docs:
169
+ name: Generate Website
170
+ runs-on: ubuntu-latest
171
+
172
+ steps:
173
+ - uses: actions/checkout@v3
174
+
175
+ - uses: actions/setup-python@v4
176
+ with:
177
+ python-version: "3.9"
178
+
179
+ - name: Install dependencies
180
+ run: pip install -r docs/requirements.txt
181
+
182
+ - name: Install Gymnasium
183
+ run: pip install mujoco && pip install .[atari,accept-rom-license,box2d]
184
+
185
+ - name: Build Envs Docs
186
+ run: python docs/scripts/gen_mds.py && python docs/scripts/gen_envs_display.py
187
+
188
+ - name: Build
189
+ run: sphinx-build -b dirhtml -v docs _build
190
+
191
+ - name: Move 404
192
+ run: mv _build/404/index.html _build/404.html
193
+
194
+ - name: Update 404 links
195
+ run: python docs/_scripts/move_404.py _build/404.html
196
+
197
+ - name: Remove .doctrees
198
+ run: rm -r _build/.doctrees
199
+
200
+ - name: Upload to GitHub Pages
201
+ uses: JamesIves/github-pages-deploy-action@v4
202
+ with:
203
+ folder: _build
204
+ target-folder: main
205
+ clean: false
206
+ ```
207
+
208
+ - `build-docs-version.yml` - Build the docs' latest version based on a new release (tag). The build will be published in the root folder and a folder named after the version (e.g. 1.0.3) at the `gh-pages` branch.
209
+
210
+ ```yaml
211
+ name: Docs Versioning
212
+ on:
213
+ push:
214
+ tags:
215
+ - "v?*.*.*"
216
+ permissions:
217
+ contents: write
218
+ jobs:
219
+ docs:
220
+ name: Generate Website for new version
221
+ runs-on: ubuntu-latest
222
+ steps:
223
+ - uses: actions/checkout@v3
224
+
225
+ - uses: actions/setup-python@v4
226
+ with:
227
+ python-version: "3.9"
228
+
229
+ - name: Install docs dependencies
230
+ run: pip install -r docs/requirements.txt
231
+
232
+ - name: Install Gymnasium
233
+ run: pip install mujoco && pip install .[atari,accept-rom-license,box2d]
234
+
235
+ - name: Build Envs Docs
236
+ run: python docs/_scripts/gen_mds.py && python docs/_scripts/gen_envs_display.py
237
+
238
+ - name: Build
239
+ run: sphinx-build -b dirhtml -v docs _build
240
+
241
+ - name: Move 404
242
+ run: mv _build/404/index.html _build/404.html
243
+
244
+ - name: Update 404 links
245
+ run: python docs/_scripts/move_404.py _build/404.html
246
+
247
+ - name: Remove .doctrees
248
+ run: rm -r _build/.doctrees
249
+
250
+ - name: Upload to GitHub Pages
251
+ uses: JamesIves/github-pages-deploy-action@v4
252
+ with:
253
+ folder: _build
254
+ target-folder: ${{github.ref_name}}
255
+ clean: false
256
+
257
+ - name: Upload to GitHub Pages
258
+ uses: JamesIves/github-pages-deploy-action@v4
259
+ if: ${{ !contains(github.ref_name, 'a') }}
260
+ with:
261
+ folder: _build
262
+ clean-exclude: |
263
+ *.*.*/
264
+ main
265
+ ```
266
+
267
+ - `build-manual-docs-version.yml` - Build a certain version of the documentation website based on a certain commit. The build will be published in the root folder (if the option latest is enabled) and a folder named after the version (e.g. 1.0.3) at the `gh-pages` branch.
268
+
269
+ ```yaml
270
+ name: Manual Docs Versioning
271
+ on:
272
+ workflow_dispatch:
273
+ inputs:
274
+ version:
275
+ description: "Documentation version to create"
276
+ required: true
277
+ commit:
278
+ description: "Commit used to build the Documentation version"
279
+ required: false
280
+ latest:
281
+ description: "Latest version"
282
+ type: boolean
283
+
284
+ permissions:
285
+ contents: write
286
+ jobs:
287
+ docs:
288
+ name: Generate Website for the new version
289
+ runs-on: ubuntu-latest
290
+ steps:
291
+ - uses: actions/checkout@v3
292
+ if: inputs.commit == ''
293
+
294
+ - uses: actions/checkout@v3
295
+ if: inputs.commit != ''
296
+ with:
297
+ ref: ${{ inputs.commit }}
298
+
299
+ - uses: actions/setup-python@v4
300
+ with:
301
+ python-version: "3.9"
302
+
303
+ - name: Install dependencies
304
+ run: pip install -r docs/requirements.txt
305
+
306
+ - name: Install Gymnasium
307
+ run: pip install mujoco && pip install .[atari,accept-rom-license,box2d]
308
+
309
+ - name: Build Envs Docs
310
+ run: python docs/_scripts/gen_mds.py && python docs/_scripts/gen_envs_display.py
311
+
312
+ - name: Build
313
+ run: sphinx-build -b dirhtml -v docs _build
314
+
315
+ - name: Move 404
316
+ run: mv _build/404/index.html _build/404.html
317
+
318
+ - name: Update 404 links
319
+ run: python docs/_scripts/move_404.py _build/404.html
320
+
321
+ - name: Remove .doctrees
322
+ run: rm -r _build/.doctrees
323
+
324
+ - name: Upload to GitHub Pages
325
+ uses: JamesIves/github-pages-deploy-action@v4
326
+ with:
327
+ folder: _build
328
+ target-folder: ${{ inputs.version }}
329
+ clean: false
330
+
331
+ - name: Upload to GitHub Pages
332
+ uses: JamesIves/github-pages-deploy-action@v4
333
+ if: inputs.latest
334
+ with:
335
+ folder: _build
336
+ clean-exclude: |
337
+ *.*.*/
338
+ main
339
+ ```
340
+
341
+ ## Theme Options
342
+
343
+ ### Google Analytics
344
+
345
+ To enable Google Analytics add the following theme option in the `conf.py` file.
346
+
347
+ ```python
348
+ html_theme_options = {
349
+ "gtag": "G-6H9C8TWXZ8",
350
+ }
351
+ ```
352
+
353
+ ### Donations Banner/Button
354
+
355
+ To enable the donations banner and sidebar button, add the following theme option in the `conf.py` file.
356
+
357
+ ```python
358
+ html_theme_options = {
359
+ "donations": True,
360
+ }
361
+ ```
362
+
363
+ ### Edit page button
364
+
365
+ To enable the edit page button, which redirects the user to the source code of the page (i.e. markdown file), add the following context dictionary to the `conf.py` script.
366
+
367
+ ```python
368
+ html_theme_options = {
369
+ "source_repository": "https://github.com/Farama-Foundation/<PROJECT>/",
370
+ "source_branch": "main",
371
+ "source_directory": "docs/",
372
+ }
373
+ ```
374
+
375
+ ### Other Theme options
376
+
377
+ ```python
378
+ html_theme_options = {
379
+ "light_logo": "img/gymnasium_black.svg",
380
+ "dark_logo": "img/gymnasium_white.svg",
381
+ "description": "A standard API for reinforcement learning and a diverse set of reference environments (formerly Gym)",
382
+ "image": "img/gymnasium-github.png",
383
+ }
384
+ ```
385
+
386
+ ## Custom Directives
387
+
388
+ We provided a set of custom directives that enable us to keep a standard style across the different projects.
389
+
390
+ ### Project Logo
391
+
392
+ This is usually used on the index page of the documentation.
393
+
394
+ ````
395
+ ```{project-logo} _static/gymnasium-text.png
396
+ :alt: Gymnasium Logo
397
+ ```
398
+ ````
399
+
400
+ ### Project Heading
401
+
402
+ This is usually used on the index page of the documentation after the project logo.
403
+
404
+ ````
405
+ ```{project-heading}
406
+ A clean customisable Sphinx documentation theme.
407
+ ```
408
+ ````
409
+
410
+ ## Frontmatter
411
+
412
+ ### Disable Previous page and/or Next page buttons
413
+
414
+ If you don't want a certain page to have the `Next` and/or `Previous` buttons at the bottom you can disable them by adding the following variables to the front matter block of the markdown file:
415
+
416
+ - `firstpage:` - disables `Previous` button
417
+
418
+ - `lastpage:` - disables `Next` button
419
+
420
+ For example:
421
+
422
+ ```
423
+ ---
424
+ firstpage:
425
+ lastpage:
426
+ ---
427
+ ```
428
+
429
+ ### Disable page edit button for autogenerated pages
430
+
431
+ Add the following variable to the front matter block of the markdown file:
432
+
433
+ ```
434
+ ---
435
+ autogenerated:
436
+ ---
437
+ ```
438
+
439
+ ### Environment Icon
440
+
441
+ To add an icon next to the page title (H1 or H2, but it needs to be the first) add the following variable to the front matter block of the markdown file:
442
+
443
+ ```
444
+ ---
445
+ env_icon: [path to icon]
446
+ ---
447
+ ```
448
+
449
+ ### Farama Top Menu
450
+
451
+ The Farama Foundation top menu is built using the response of the API [farama.org/api/projects.json](https://farama.org/api/projects.json). The source code of the API can found [here](https://github.com/Farama-Foundation/farama.org/blob/main/api/projects.json) and the source code of the menu [here](https://github.com/Farama-Foundation/Celshast/blob/main/src/celshast/theme/celshast/base.html#L238)
452
+
453
+ ## Tutorials
454
+
455
+ We use [sphinx-gallery](https://sphinx-gallery.github.io/stable/index.html) to build the tutorials. To add `sphinx-gallery` you need to add the following code to the `conf.py` script (assuming that all tutorials are in the folder `docs/tutorials`). Don't forget to add `sphinx-gallery` to the docs requirements.
456
+
457
+ ```python
458
+ extensions = [
459
+ ...
460
+ "sphinx_gallery.gen_gallery",
461
+ ]
462
+
463
+ # -- Generate Tutorials -------------------------------------------------
464
+
465
+ sphinx_gallery.gen_rst.EXAMPLE_HEADER = """
466
+ .. DO NOT EDIT.
467
+ .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
468
+ .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
469
+ .. "{0}"
470
+ .. LINE NUMBERS ARE GIVEN BELOW.
471
+
472
+ .. rst-class:: sphx-glr-example-title
473
+
474
+ .. _sphx_glr_{1}:
475
+
476
+ """
477
+
478
+ sphinx_gallery_conf = {
479
+ "ignore_pattern": r"__init__\.py",
480
+ "examples_dirs": "./tutorials",
481
+ "gallery_dirs": "./tutorials",
482
+ "show_signature": False,
483
+ "show_memory": False,
484
+ "min_reported_time": float("inf"),
485
+ "filename_pattern": f"{re.escape(os.sep)}run_",
486
+ "default_thumb_file": os.path.join(
487
+ os.path.dirname(__file__), "_static/img/minari-text.png"
488
+ ),
489
+ }
490
+ ```
491
+
492
+ ## Building Theme from source
493
+
494
+ To contribute to the theme you will need to build it. The toolchain (Python, Node, `uv`, `just`) is pinned in `mise.toml`; install [mise](https://mise.jdx.dev/) and run `mise install` from the repo root to provision matching versions.
495
+
496
+ ```
497
+ mise install
498
+ just serve
499
+ ```
500
+
501
+ `just serve` runs the live-reload docs server bound to `0.0.0.0:8000` so the site is reachable from another device on your LAN (e.g. a phone). To use a different host or port:
502
+
503
+ ```
504
+ just serve 127.0.0.1 9000
505
+ ```
506
+
507
+ Other recipes in the `Justfile`:
508
+
509
+ - `just build` — build the docs into `build/docs` once (no live-reload).
510
+ - `just lint` — run the pre-commit linters (ruff, prettier, mypy, …).
511
+
512
+ Each recipe is a thin wrapper around `uvx nox -s <session>`. Nox uses `uv` as its venv backend (configured in `noxfile.py`), so session installs are fast. Available sessions: `docs`, `docs-live`, `lint`, `release`.
513
+
514
+ For a fuller walkthrough of the contributor workflow — initial setup, linting, the dev server, the release process — see `docs/contributing/workflow.md` (or run `just serve` and browse to it).
515
+
516
+ ## License
517
+
518
+ This project is licensed under the MIT License.