DESCRIPTION.rst 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. .. Forward declarations for all the custom interpreted text roles that
  2. Sphinx defines and that are used below. This helps Sphinx-unaware tools
  3. (e.g. rst2html, PyPI's and GitHub's renderers, etc.).
  4. .. role:: doc
  5. bidict
  6. ======
  7. Efficient, Pythonic bidirectional map implementation and related functionality.
  8. .. image:: https://raw.githubusercontent.com/jab/bidict/master/assets/logo.png
  9. :target: https://bidict.readthedocs.io/
  10. :alt: bidict logo
  11. Status
  12. ------
  13. .. Hide until https://github.com/badges/shields/issues/716 is fixed
  14. .. image:: https://img.shields.io/pypi/dm/bidict.svg
  15. :target: https://pypi.org/project/bidict
  16. :alt: Downloads per month
  17. .. image:: https://img.shields.io/pypi/v/bidict.svg
  18. :target: https://pypi.org/project/bidict
  19. :alt: Latest release
  20. .. image:: https://img.shields.io/readthedocs/bidict/master.svg
  21. :target: https://bidict.readthedocs.io/en/master/
  22. :alt: Documentation
  23. .. image:: https://api.travis-ci.org/jab/bidict.svg?branch=master
  24. :target: https://travis-ci.org/jab/bidict
  25. :alt: Travis-CI build status
  26. .. image:: https://ci.appveyor.com/api/projects/status/gk133415udncwto3/branch/master?svg=true
  27. :target: https://ci.appveyor.com/project/jab/bidict
  28. :alt: AppVeyor (Windows) build status
  29. .. image:: https://codecov.io/gh/jab/bidict/branch/master/graph/badge.svg
  30. :target: https://codecov.io/gh/jab/bidict
  31. :alt: Test coverage
  32. .. image:: https://api.codacy.com/project/badge/Grade/6628756a73254cd895656348236833b8
  33. :target: https://www.codacy.com/app/jab/bidict
  34. :alt: Codacy grade
  35. .. Hide to reduce clutter
  36. .. image:: https://img.shields.io/pypi/pyversions/bidict.svg
  37. :target: https://pypi.org/project/bidict
  38. :alt: Supported Python versions
  39. .. image:: https://img.shields.io/pypi/implementation/bidict.svg
  40. :target: https://pypi.org/project/bidict
  41. :alt: Supported Python implementations
  42. .. image:: https://img.shields.io/badge/lgtm-👍-blue.svg
  43. :target: https://lgtm.com/projects/g/jab/bidict/
  44. :alt: LGTM
  45. .. image:: https://img.shields.io/pypi/l/bidict.svg
  46. :target: https://raw.githubusercontent.com/jab/bidict/master/LICENSE
  47. :alt: License
  48. Bidict:
  49. ^^^^^^^
  50. - is in use by several teams at Google, Venmo, CERN, Bank of America Merrill Lynch,
  51. Two Sigma, and many others,
  52. - has carefully designed APIs for
  53. safety, simplicity, flexibility, and ergonomics,
  54. - is CPython-, PyPy-, Python 2-, and Python 3-compatible,
  55. - has extensive `test coverage <https://codecov.io/gh/jab/bidict>`__,
  56. including property-based tests and benchmarks,
  57. which are run continuously on all supported Python versions and OSes,
  58. - integrates with Python’s collections interfaces and abstract base classes,
  59. - has mature, well-factored, well-documented code.
  60. Installation
  61. ------------
  62. ``pip install bidict``
  63. Quick Start
  64. -----------
  65. .. code:: python
  66. >>> from bidict import bidict
  67. >>> element_by_symbol = bidict({'H': 'hydrogen'})
  68. >>> element_by_symbol['H']
  69. 'hydrogen'
  70. >>> element_by_symbol.inv['hydrogen']
  71. 'H'
  72. For more usage documentation,
  73. head to the :doc:`intro` [#fn-intro]_
  74. and proceed from there.
  75. Community and Support
  76. ---------------------
  77. .. image:: https://img.shields.io/badge/chat-on%20gitter-5AB999.svg?logo=gitter-white
  78. :target: https://gitter.im/jab/bidict
  79. :alt: Chat
  80. If you are thinking of using bidict in your work,
  81. or if you have any questions, comments, or suggestions,
  82. I'd love to know about your use case
  83. and provide as much support for it as possible.
  84. Please feel free to leave a message in the
  85. `chatroom <https://gitter.im/jab/bidict>`__
  86. or to open a new issue on GitHub.
  87. You can search through
  88. `existing issues <https://github.com/jab/bidict/issues>`__
  89. before creating a new one
  90. in case your questions or concerns have been adressed there already.
  91. Notice of Usage
  92. ---------------
  93. If you use bidict,
  94. and especially if your usage or your organization is significant in some way,
  95. please let me know.
  96. You can:
  97. - quickly +1 `this issue <https://github.com/jab/bidict/issues/62>`__
  98. - create your own `dedicated issue <https://github.com/jab/bidict/issues/new?title=Notice+of+Usage&body=I+am+using+bidict+for...>`__
  99. - leave a message in the `chat room <https://gitter.im/jab/bidict>`__
  100. - `email me <mailto:jab@math.brown.edu?subject=bidict&body=I%20am%20using%20bidict%20for...>`__
  101. Changelog
  102. ---------
  103. See the :doc:`changelog` [#fn-changelog]_
  104. for a history of notable changes to bidict.
  105. Release Notifications
  106. ---------------------
  107. .. duplicated in CHANGELOG.rst:
  108. (would use `.. include::` but GitHub doesn't understand it)
  109. .. image:: https://img.shields.io/badge/libraries.io-subscribe-5BC0DF.svg
  110. :target: https://libraries.io/pypi/bidict
  111. :alt: Follow on libraries.io
  112. Tip: `Subscribe to bidict releases <https://libraries.io/pypi/bidict>`__
  113. on libraries.io to be notified when new versions of bidict are released.
  114. Learning from bidict
  115. --------------------
  116. One of the most rewarding things about bidict
  117. is the outsized amount of advanced Python
  118. it covers in light of its small codebase.
  119. Check out :doc:`learning-from-bidict` [#fn-learning]_
  120. if you're interested in learning more.
  121. Contributing
  122. ------------
  123. Bidict is currently a one-person operation
  124. maintained on a voluntary basis
  125. with no other sponsorship.
  126. Your help would be most welcome!
  127. Reviewers Wanted!
  128. ^^^^^^^^^^^^^^^^^
  129. One of the most valuable ways to contribute to bidict
  130. and to :doc:`explore some advanced Python <learning-from-bidict>`
  131. while you're at it
  132. is to review bidict's relatively small codebase.
  133. Please create an issue or pull request with any improvements you'd propose
  134. or any other results you found.
  135. (Submitting a "Nothing-to-merge" PR with feedback in inline code comments or a
  136. `Review results <https://github.com/jab/bidict/issues/new?title=Review+results>`__
  137. issue both work well.)
  138. You can also
  139. +1 `this issue <https://github.com/jab/bidict/issues/63>`__
  140. to sign up to give feedback on future proposed changes
  141. that are in need of a reviewer.
  142. Funding
  143. ^^^^^^^
  144. .. duplicated in CONTRIBUTING.rst
  145. (would use `.. include::` but GitHub doesn't understand it)
  146. If bidict has helped you accomplish your work,
  147. especially work you've been paid for,
  148. please consider chipping in toward the costs
  149. of bidict's maintenance and development
  150. and/or ask your organization to do the same.
  151. Any amount contributed is gratefully received.
  152. .. image:: https://raw.githubusercontent.com/jab/bidict/master/assets/support-on-gumroad.png
  153. :target: https://gumroad.com/l/bidict
  154. :alt: Support bidict
  155. Finding Documentation
  156. ---------------------
  157. If you're viewing this on `<https://bidict.readthedocs.io>`__,
  158. note that multiple versions of the documentation are available,
  159. and you can choose a different version using the popup menu at the bottom-right.
  160. Please make sure you're viewing the version of the documentation
  161. that corresponds to the version of bidict you'd like to use.
  162. If you're viewing this on GitHub, PyPI, or some other place
  163. that can't render and link this documentation properly
  164. and are seeing broken links,
  165. try these alternate links instead:
  166. .. [#fn-intro] `<docs/intro.rst>`__ | `<https://bidict.readthedocs.io/intro.html>`__
  167. .. [#fn-changelog] `<CHANGELOG.rst>`__ | `<https://bidict.readthedocs.io/changelog.html>`__
  168. .. [#fn-learning] `<docs/learning-from-bidict.rst>`__ | `<https://bidict.readthedocs.io/learning-from-bidict.html>`__
  169. ----
  170. Next: :doc:`intro` [#fn-intro]_