registrata 0.1.0__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 (177) hide show
  1. registrata-0.1.0/.gitignore +8 -0
  2. registrata-0.1.0/LICENSE +21 -0
  3. registrata-0.1.0/PKG-INFO +697 -0
  4. registrata-0.1.0/README.md +674 -0
  5. registrata-0.1.0/pyproject.toml +72 -0
  6. registrata-0.1.0/src/registrata/__init__.py +184 -0
  7. registrata-0.1.0/src/registrata/__main__.py +13 -0
  8. registrata-0.1.0/src/registrata/_flags.py +140 -0
  9. registrata-0.1.0/src/registrata/backends/__init__.py +4 -0
  10. registrata-0.1.0/src/registrata/backends/base.py +118 -0
  11. registrata-0.1.0/src/registrata/backends/json_store.py +81 -0
  12. registrata-0.1.0/src/registrata/backends/memory.py +461 -0
  13. registrata-0.1.0/src/registrata/banner.py +130 -0
  14. registrata-0.1.0/src/registrata/cache.py +323 -0
  15. registrata-0.1.0/src/registrata/capabilities.py +72 -0
  16. registrata-0.1.0/src/registrata/circuitbreaker.py +266 -0
  17. registrata-0.1.0/src/registrata/cli.py +1608 -0
  18. registrata-0.1.0/src/registrata/client.py +266 -0
  19. registrata-0.1.0/src/registrata/comparison.py +305 -0
  20. registrata-0.1.0/src/registrata/conformance.py +235 -0
  21. registrata-0.1.0/src/registrata/diagnostics.py +284 -0
  22. registrata-0.1.0/src/registrata/errors.py +283 -0
  23. registrata-0.1.0/src/registrata/experimental/__init__.py +43 -0
  24. registrata-0.1.0/src/registrata/experimental/batch.py +565 -0
  25. registrata-0.1.0/src/registrata/experimental/gateway.py +642 -0
  26. registrata-0.1.0/src/registrata/experimental/lookup.py +486 -0
  27. registrata-0.1.0/src/registrata/experimental/rdap.py +1156 -0
  28. registrata-0.1.0/src/registrata/experimental/whois.py +495 -0
  29. registrata-0.1.0/src/registrata/experimental/whois_adapters.py +188 -0
  30. registrata-0.1.0/src/registrata/metrics.py +88 -0
  31. registrata-0.1.0/src/registrata/model.py +1080 -0
  32. registrata-0.1.0/src/registrata/observability.py +106 -0
  33. registrata-0.1.0/src/registrata/protocol.py +408 -0
  34. registrata-0.1.0/src/registrata/py.typed +0 -0
  35. registrata-0.1.0/src/registrata/query.py +247 -0
  36. registrata-0.1.0/src/registrata/ratelimit.py +131 -0
  37. registrata-0.1.0/src/registrata/record_schema.py +261 -0
  38. registrata-0.1.0/src/registrata/records.py +227 -0
  39. registrata-0.1.0/src/registrata/resolver.py +122 -0
  40. registrata-0.1.0/src/registrata/retry.py +71 -0
  41. registrata-0.1.0/src/registrata/schema.py +442 -0
  42. registrata-0.1.0/src/registrata/server.py +956 -0
  43. registrata-0.1.0/src/registrata/soa.py +108 -0
  44. registrata-0.1.0/src/registrata/special_names.py +99 -0
  45. registrata-0.1.0/src/registrata/wire.py +112 -0
  46. registrata-0.1.0/src/rwhois/__init__.py +55 -0
  47. registrata-0.1.0/tests/fixtures/live/README.md +69 -0
  48. registrata-0.1.0/tests/fixtures/live/rdap_example_com_verisign.json +1 -0
  49. registrata-0.1.0/tests/fixtures/live/rdap_example_org_pir.json +213 -0
  50. registrata-0.1.0/tests/fixtures/live/whois_example_com_verisign.txt +56 -0
  51. registrata-0.1.0/tests/fixtures/live/whois_example_org_pir.txt +25 -0
  52. registrata-0.1.0/tests/fixtures/live/whois_org_iana.txt +53 -0
  53. registrata-0.1.0/tests/fixtures/rwhois/malformed/attribute-bad-type-suffix.txt +2 -0
  54. registrata-0.1.0/tests/fixtures/rwhois/malformed/attribute-missing-class-separator.txt +2 -0
  55. registrata-0.1.0/tests/fixtures/rwhois/malformed/attribute-missing-value.txt +2 -0
  56. registrata-0.1.0/tests/fixtures/rwhois/malformed/banner-bad-capability-id.txt +2 -0
  57. registrata-0.1.0/tests/fixtures/rwhois/malformed/banner-missing-host.txt +2 -0
  58. registrata-0.1.0/tests/fixtures/rwhois/malformed/banner-short-capability-id.txt +2 -0
  59. registrata-0.1.0/tests/fixtures/rwhois/malformed/class-name-invalid-characters.txt +2 -0
  60. registrata-0.1.0/tests/fixtures/rwhois/malformed/class-record-too-few-parts.txt +2 -0
  61. registrata-0.1.0/tests/fixtures/rwhois/malformed/error-code-nonnumeric.txt +2 -0
  62. registrata-0.1.0/tests/fixtures/rwhois/malformed/error-code-wrong-width.txt +2 -0
  63. registrata-0.1.0/tests/fixtures/rwhois/malformed/info-block-missing-on.txt +2 -0
  64. registrata-0.1.0/tests/fixtures/rwhois/malformed/info-off-without-on.txt +2 -0
  65. registrata-0.1.0/tests/fixtures/rwhois/malformed/object-class-mismatch-mid-record.txt +3 -0
  66. registrata-0.1.0/tests/fixtures/rwhois/malformed/referral-bare-line.txt +2 -0
  67. registrata-0.1.0/tests/fixtures/rwhois/malformed/referral-missing-auth-area.txt +2 -0
  68. registrata-0.1.0/tests/fixtures/rwhois/malformed/referral-nonnumeric-port.txt +2 -0
  69. registrata-0.1.0/tests/fixtures/rwhois/malformed/referral-port-out-of-range.txt +2 -0
  70. registrata-0.1.0/tests/fixtures/rwhois/malformed/referral-wrong-scheme.txt +2 -0
  71. registrata-0.1.0/tests/fixtures/rwhois/malformed/register-missing-colon.txt +2 -0
  72. registrata-0.1.0/tests/fixtures/rwhois/malformed/schema-record-too-few-parts.txt +2 -0
  73. registrata-0.1.0/tests/fixtures/rwhois/malformed/soa-missing-authority.txt +3 -0
  74. registrata-0.1.0/tests/fixtures/rwhois/malformed/status-missing-colon.txt +2 -0
  75. registrata-0.1.0/tests/fixtures/rwhois/malformed/xfer-missing-attribute-separator.txt +2 -0
  76. registrata-0.1.0/tests/fixtures/rwhois/manifest.json +2469 -0
  77. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-banner-versions.txt +3 -0
  78. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-class-record.txt +7 -0
  79. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-directive-notify.txt +6 -0
  80. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-directive-record.txt +7 -0
  81. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-directive-security.txt +8 -0
  82. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-directive-session-control.txt +20 -0
  83. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-directive-transfer.txt +5 -0
  84. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-display-record.txt +5 -0
  85. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-lexicon-object.txt +14 -0
  86. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-protocol-server-returns.txt +18 -0
  87. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-query-attribute-and-boolean.txt +6 -0
  88. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-query-result-multiclass.txt +9 -0
  89. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-query-result-referrals.txt +6 -0
  90. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-query-string-leading-star-3-4.txt +3 -0
  91. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-query-string-quoted.txt +3 -0
  92. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-query-string-trailing-star.txt +5 -0
  93. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-register-add.txt +8 -0
  94. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-register-del.txt +7 -0
  95. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-register-mod.txt +13 -0
  96. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-response-error.txt +1 -0
  97. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-response-info-block.txt +5 -0
  98. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-schema-record.txt +7 -0
  99. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-soa-record.txt +16 -0
  100. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-status-record.txt +8 -0
  101. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-x-dialogue.txt +5 -0
  102. registrata-0.1.0/tests/fixtures/rwhois/valid/abnf-xfer-record.txt +7 -0
  103. registrata-0.1.0/tests/fixtures/rwhois/valid/banner-multi-version.txt +2 -0
  104. registrata-0.1.0/tests/fixtures/rwhois/valid/banner-rfc-example.txt +2 -0
  105. registrata-0.1.0/tests/fixtures/rwhois/valid/directive-class.txt +7 -0
  106. registrata-0.1.0/tests/fixtures/rwhois/valid/directive-directive-list.txt +7 -0
  107. registrata-0.1.0/tests/fixtures/rwhois/valid/directive-display.txt +2 -0
  108. registrata-0.1.0/tests/fixtures/rwhois/valid/directive-info-block.txt +5 -0
  109. registrata-0.1.0/tests/fixtures/rwhois/valid/directive-register-notify.txt +3 -0
  110. registrata-0.1.0/tests/fixtures/rwhois/valid/directive-schema.txt +13 -0
  111. registrata-0.1.0/tests/fixtures/rwhois/valid/directive-soa.txt +12 -0
  112. registrata-0.1.0/tests/fixtures/rwhois/valid/directive-status.txt +7 -0
  113. registrata-0.1.0/tests/fixtures/rwhois/valid/directive-xfer.txt +5 -0
  114. registrata-0.1.0/tests/fixtures/rwhois/valid/error-idle-time-exceeded.txt +2 -0
  115. registrata-0.1.0/tests/fixtures/rwhois/valid/query-domain-object.txt +16 -0
  116. registrata-0.1.0/tests/fixtures/rwhois/valid/query-multiple-objects.txt +6 -0
  117. registrata-0.1.0/tests/fixtures/rwhois/valid/query-no-objects.txt +1 -0
  118. registrata-0.1.0/tests/fixtures/rwhois/valid/query-objects-and-referral.txt +5 -0
  119. registrata-0.1.0/tests/fixtures/rwhois/valid/query-referral-chain.txt +3 -0
  120. registrata-0.1.0/tests/fixtures/rwhois/valid/query-referral.txt +2 -0
  121. registrata-0.1.0/tests/fixtures/rwhois/valid/query-typed-attributes.txt +8 -0
  122. registrata-0.1.0/tests/fixtures/rwhois/wire/abnf-wire-bare-lf.txt +2 -0
  123. registrata-0.1.0/tests/fixtures/rwhois/wire/abnf-wire-octets.txt +2 -0
  124. registrata-0.1.0/tests/fixtures/rwhois/wire/bare-lf-terminated.txt +1 -0
  125. registrata-0.1.0/tests/fixtures/rwhois/wire/non-ascii-octets-are-8-bit-safe.txt +2 -0
  126. registrata-0.1.0/tests/fixtures/rwhois/wire/oversized-line-memory-bomb.txt +2 -0
  127. registrata-0.1.0/tests/test_banner.py +38 -0
  128. registrata-0.1.0/tests/test_batch.py +1043 -0
  129. registrata-0.1.0/tests/test_cache.py +61 -0
  130. registrata-0.1.0/tests/test_circuitbreaker.py +65 -0
  131. registrata-0.1.0/tests/test_cli.py +1012 -0
  132. registrata-0.1.0/tests/test_comparison.py +203 -0
  133. registrata-0.1.0/tests/test_compat_rename.py +102 -0
  134. registrata-0.1.0/tests/test_conformance.py +56 -0
  135. registrata-0.1.0/tests/test_conformance_verdicts.py +158 -0
  136. registrata-0.1.0/tests/test_diagnostics.py +42 -0
  137. registrata-0.1.0/tests/test_docs_cli.py +191 -0
  138. registrata-0.1.0/tests/test_experimental_lookup.py +211 -0
  139. registrata-0.1.0/tests/test_experimental_rdap.py +555 -0
  140. registrata-0.1.0/tests/test_experimental_whois.py +163 -0
  141. registrata-0.1.0/tests/test_flags.py +105 -0
  142. registrata-0.1.0/tests/test_gateway.py +565 -0
  143. registrata-0.1.0/tests/test_json_store.py +28 -0
  144. registrata-0.1.0/tests/test_live_fixtures.py +303 -0
  145. registrata-0.1.0/tests/test_metrics.py +18 -0
  146. registrata-0.1.0/tests/test_model.py +110 -0
  147. registrata-0.1.0/tests/test_observability.py +52 -0
  148. registrata-0.1.0/tests/test_protocol.py +40 -0
  149. registrata-0.1.0/tests/test_query.py +44 -0
  150. registrata-0.1.0/tests/test_ratelimit.py +21 -0
  151. registrata-0.1.0/tests/test_rdap_extensions.py +1406 -0
  152. registrata-0.1.0/tests/test_rdap_http.py +858 -0
  153. registrata-0.1.0/tests/test_record_schema.py +147 -0
  154. registrata-0.1.0/tests/test_records.py +52 -0
  155. registrata-0.1.0/tests/test_referral.py +56 -0
  156. registrata-0.1.0/tests/test_register.py +705 -0
  157. registrata-0.1.0/tests/test_resolver.py +52 -0
  158. registrata-0.1.0/tests/test_retry.py +60 -0
  159. registrata-0.1.0/tests/test_rfc2167_appendix_c.py +108 -0
  160. registrata-0.1.0/tests/test_roadmap_rows.py +173 -0
  161. registrata-0.1.0/tests/test_rwhois_abnf.py +1866 -0
  162. registrata-0.1.0/tests/test_rwhois_corpus.py +509 -0
  163. registrata-0.1.0/tests/test_rwhois_framing.py +650 -0
  164. registrata-0.1.0/tests/test_rwhois_hostile_server.py +346 -0
  165. registrata-0.1.0/tests/test_rwhois_property.py +638 -0
  166. registrata-0.1.0/tests/test_schema_validate.py +167 -0
  167. registrata-0.1.0/tests/test_server_client.py +314 -0
  168. registrata-0.1.0/tests/test_server_extra.py +83 -0
  169. registrata-0.1.0/tests/test_slow_peer.py +237 -0
  170. registrata-0.1.0/tests/test_special_names.py +233 -0
  171. registrata-0.1.0/tests/test_whois_adapters.py +67 -0
  172. registrata-0.1.0/tests/test_wire_security.py +49 -0
  173. registrata-0.1.0/tools/generate_rwhois_corpus.py +697 -0
  174. registrata-0.1.0/tools/probe_rwhois_malformed.py +89 -0
  175. registrata-0.1.0/tools/rwhois_abnf_gen.py +3207 -0
  176. registrata-0.1.0/tools/rwhois_abnf_match.py +252 -0
  177. registrata-0.1.0/tools/rwhois_grammar.py +538 -0
@@ -0,0 +1,8 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+ *.egg-info/
4
+ build/
5
+ dist/
6
+ .venv/
7
+ .pytest_cache/
8
+ .coverage
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Justin Capella
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.