edify 0.2.2__tar.gz → 1.0.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 (1899) hide show
  1. edify-1.0.0/.gitignore +88 -0
  2. edify-1.0.0/AUTHORS.rst +6 -0
  3. edify-1.0.0/CHANGELOG.rst +133 -0
  4. edify-1.0.0/CONTRIBUTING.rst +87 -0
  5. edify-1.0.0/LICENSE +21 -0
  6. edify-1.0.0/PKG-INFO +196 -0
  7. edify-1.0.0/README.rst +152 -0
  8. edify-1.0.0/docs/_ext/__init__.py +0 -0
  9. edify-1.0.0/docs/_ext/autolink.py +136 -0
  10. edify-1.0.0/docs/_ext/codelinks.py +106 -0
  11. edify-1.0.0/docs/_ext/playground.py +343 -0
  12. edify-1.0.0/docs/_ext/signatures.py +58 -0
  13. edify-1.0.0/docs/_static/.gitkeep +0 -0
  14. edify-1.0.0/docs/_theme/edify/api.html +60 -0
  15. edify-1.0.0/docs/_theme/edify/guide.html +19 -0
  16. edify-1.0.0/docs/_theme/edify/home.html +101 -0
  17. edify-1.0.0/docs/_theme/edify/layout.html +78 -0
  18. edify-1.0.0/docs/_theme/edify/library.html +19 -0
  19. edify-1.0.0/docs/_theme/edify/page.html +19 -0
  20. edify-1.0.0/docs/_theme/edify/static/css/api.css +123 -0
  21. edify-1.0.0/docs/_theme/edify/static/css/base.css +192 -0
  22. edify-1.0.0/docs/_theme/edify/static/css/content.css +129 -0
  23. edify-1.0.0/docs/_theme/edify/static/css/home.css +84 -0
  24. edify-1.0.0/docs/_theme/edify/static/css/playground.css +130 -0
  25. edify-1.0.0/docs/_theme/edify/static/css/syntax.css +52 -0
  26. edify-1.0.0/docs/_theme/edify/static/js/apipill.js +17 -0
  27. edify-1.0.0/docs/_theme/edify/static/js/edify-api.js +1 -0
  28. edify-1.0.0/docs/_theme/edify/static/js/links.js +9 -0
  29. edify-1.0.0/docs/_theme/edify/static/js/navscroll.js +17 -0
  30. edify-1.0.0/docs/_theme/edify/static/js/playground.js +262 -0
  31. edify-1.0.0/docs/_theme/edify/static/js/pyodide-runtime.js +115 -0
  32. edify-1.0.0/docs/_theme/edify/static/js/theme-toggle.js +10 -0
  33. edify-1.0.0/docs/_theme/edify/theme.conf +4 -0
  34. edify-1.0.0/docs/_theme/edify/wide.html +14 -0
  35. edify-1.0.0/docs/api/atoms.rst +1857 -0
  36. edify-1.0.0/docs/api/builder/anchors.rst +9 -0
  37. edify-1.0.0/docs/api/builder/assertions.rst +13 -0
  38. edify-1.0.0/docs/api/builder/captures.rst +13 -0
  39. edify-1.0.0/docs/api/builder/characters.rst +20 -0
  40. edify-1.0.0/docs/api/builder/classes.rst +40 -0
  41. edify-1.0.0/docs/api/builder/composition.rst +36 -0
  42. edify-1.0.0/docs/api/builder/flags.rst +17 -0
  43. edify-1.0.0/docs/api/builder/groups.rst +13 -0
  44. edify-1.0.0/docs/api/builder/index.rst +68 -0
  45. edify-1.0.0/docs/api/builder/matching.rst +16 -0
  46. edify-1.0.0/docs/api/builder/output.rst +9 -0
  47. edify-1.0.0/docs/api/builder/quantifiers.rst +28 -0
  48. edify-1.0.0/docs/api/constants.rst +199 -0
  49. edify-1.0.0/docs/api/errors.rst +176 -0
  50. edify-1.0.0/docs/api/factories.rst +49 -0
  51. edify-1.0.0/docs/api/index.rst +79 -0
  52. edify-1.0.0/docs/api/integrations.rst +52 -0
  53. edify-1.0.0/docs/api/introspection.rst +14 -0
  54. edify-1.0.0/docs/api/library/address.rst +1260 -0
  55. edify-1.0.0/docs/api/library/api.rst +592 -0
  56. edify-1.0.0/docs/api/library/auth.rst +604 -0
  57. edify-1.0.0/docs/api/library/color.rst +304 -0
  58. edify-1.0.0/docs/api/library/contact.rst +682 -0
  59. edify-1.0.0/docs/api/library/data.rst +565 -0
  60. edify-1.0.0/docs/api/library/document.rst +338 -0
  61. edify-1.0.0/docs/api/library/financial.rst +253 -0
  62. edify-1.0.0/docs/api/library/geo.rst +536 -0
  63. edify-1.0.0/docs/api/library/grammar.rst +216 -0
  64. edify-1.0.0/docs/api/library/identifier.rst +825 -0
  65. edify-1.0.0/docs/api/library/index.rst +121 -0
  66. edify-1.0.0/docs/api/library/media.rst +0 -0
  67. edify-1.0.0/docs/api/library/medical.rst +169 -0
  68. edify-1.0.0/docs/api/library/numeric.rst +363 -0
  69. edify-1.0.0/docs/api/library/product.rst +96 -0
  70. edify-1.0.0/docs/api/library/publishing.rst +207 -0
  71. edify-1.0.0/docs/api/library/security.rst +0 -0
  72. edify-1.0.0/docs/api/library/software.rst +747 -0
  73. edify-1.0.0/docs/api/library/temporal.rst +594 -0
  74. edify-1.0.0/docs/api/library/text.rst +0 -0
  75. edify-1.0.0/docs/api/library/transport.rst +129 -0
  76. edify-1.0.0/docs/api/library/web.rst +546 -0
  77. edify-1.0.0/docs/api/results.rst +25 -0
  78. edify-1.0.0/docs/api/serialization.rst +35 -0
  79. edify-1.0.0/docs/api/testing.rst +29 -0
  80. edify-1.0.0/docs/api/types.rst +93 -0
  81. edify-1.0.0/docs/conf.py +76 -0
  82. edify-1.0.0/docs/deprecation-policy.rst +49 -0
  83. edify-1.0.0/docs/guide/atoms/datetime.rst +153 -0
  84. edify-1.0.0/docs/guide/atoms/encodings.rst +136 -0
  85. edify-1.0.0/docs/guide/atoms/finance.rst +88 -0
  86. edify-1.0.0/docs/guide/atoms/grouping.rst +88 -0
  87. edify-1.0.0/docs/guide/atoms/index.rst +349 -0
  88. edify-1.0.0/docs/guide/atoms/network.rst +180 -0
  89. edify-1.0.0/docs/guide/atoms/numbers.rst +160 -0
  90. edify-1.0.0/docs/guide/atoms/text.rst +196 -0
  91. edify-1.0.0/docs/guide/atoms/web.rst +111 -0
  92. edify-1.0.0/docs/guide/beyond/composing.rst +221 -0
  93. edify-1.0.0/docs/guide/beyond/errors.rst +193 -0
  94. edify-1.0.0/docs/guide/beyond/from-regex.rst +174 -0
  95. edify-1.0.0/docs/guide/beyond/index.rst +26 -0
  96. edify-1.0.0/docs/guide/beyond/integrations.rst +208 -0
  97. edify-1.0.0/docs/guide/beyond/matching.rst +292 -0
  98. edify-1.0.0/docs/guide/beyond/seeing.rst +252 -0
  99. edify-1.0.0/docs/guide/beyond/serialization.rst +171 -0
  100. edify-1.0.0/docs/guide/beyond/testing.rst +175 -0
  101. edify-1.0.0/docs/guide/builder/anchors.rst +193 -0
  102. edify-1.0.0/docs/guide/builder/captures.rst +247 -0
  103. edify-1.0.0/docs/guide/builder/characters.rst +266 -0
  104. edify-1.0.0/docs/guide/builder/flags.rst +236 -0
  105. edify-1.0.0/docs/guide/builder/groups.rst +223 -0
  106. edify-1.0.0/docs/guide/builder/index.rst +27 -0
  107. edify-1.0.0/docs/guide/builder/lookaround.rst +235 -0
  108. edify-1.0.0/docs/guide/builder/quantifiers.rst +250 -0
  109. edify-1.0.0/docs/guide/index.rst +79 -0
  110. edify-1.0.0/docs/guide/practice/debugging.rst +203 -0
  111. edify-1.0.0/docs/guide/practice/index.rst +21 -0
  112. edify-1.0.0/docs/guide/practice/performance.rst +166 -0
  113. edify-1.0.0/docs/guide/practice/recipes.rst +192 -0
  114. edify-1.0.0/docs/guide/practice/unicode.rst +229 -0
  115. edify-1.0.0/docs/guide/start/getting-started.rst +151 -0
  116. edify-1.0.0/docs/guide/start/index.rst +15 -0
  117. edify-1.0.0/docs/guide/start/thinking-in-edify.rst +182 -0
  118. edify-1.0.0/docs/index.rst +25 -0
  119. edify-1.0.0/docs/library/address/cidr.rst +51 -0
  120. edify-1.0.0/docs/library/address/domain.rst +59 -0
  121. edify-1.0.0/docs/library/address/hostname.rst +61 -0
  122. edify-1.0.0/docs/library/address/index.rst +59 -0
  123. edify-1.0.0/docs/library/address/ip.rst +50 -0
  124. edify-1.0.0/docs/library/address/ipv4.rst +57 -0
  125. edify-1.0.0/docs/library/address/ipv6.rst +136 -0
  126. edify-1.0.0/docs/library/address/path.rst +49 -0
  127. edify-1.0.0/docs/library/address/port.rst +59 -0
  128. edify-1.0.0/docs/library/address/ptr.rst +42 -0
  129. edify-1.0.0/docs/library/address/socket.rst +56 -0
  130. edify-1.0.0/docs/library/address/subdomain.rst +58 -0
  131. edify-1.0.0/docs/library/address/subnet.rst +50 -0
  132. edify-1.0.0/docs/library/address/tld.rst +56 -0
  133. edify-1.0.0/docs/library/address/uri.rst +58 -0
  134. edify-1.0.0/docs/library/address/url.rst +59 -0
  135. edify-1.0.0/docs/library/address/zip_code.rst +42 -0
  136. edify-1.0.0/docs/library/api/atom.rst +46 -0
  137. edify-1.0.0/docs/library/api/graphql.rst +61 -0
  138. edify-1.0.0/docs/library/api/hal.rst +60 -0
  139. edify-1.0.0/docs/library/api/index.rst +57 -0
  140. edify-1.0.0/docs/library/api/jsonapi.rst +61 -0
  141. edify-1.0.0/docs/library/api/oauth.rst +61 -0
  142. edify-1.0.0/docs/library/api/openapi.rst +61 -0
  143. edify-1.0.0/docs/library/api/openid.rst +60 -0
  144. edify-1.0.0/docs/library/api/rss.rst +44 -0
  145. edify-1.0.0/docs/library/api/saml.rst +58 -0
  146. edify-1.0.0/docs/library/api/soap.rst +57 -0
  147. edify-1.0.0/docs/library/api/swagger.rst +46 -0
  148. edify-1.0.0/docs/library/api/webhook.rst +48 -0
  149. edify-1.0.0/docs/library/auth/apikey.rst +61 -0
  150. edify-1.0.0/docs/library/auth/bearer.rst +45 -0
  151. edify-1.0.0/docs/library/auth/challenge.rst +51 -0
  152. edify-1.0.0/docs/library/auth/csrf.rst +58 -0
  153. edify-1.0.0/docs/library/auth/hmac.rst +58 -0
  154. edify-1.0.0/docs/library/auth/index.rst +67 -0
  155. edify-1.0.0/docs/library/auth/jwt.rst +61 -0
  156. edify-1.0.0/docs/library/auth/mfa.rst +47 -0
  157. edify-1.0.0/docs/library/auth/mnemonic.rst +58 -0
  158. edify-1.0.0/docs/library/auth/otp.rst +60 -0
  159. edify-1.0.0/docs/library/auth/passkey.rst +51 -0
  160. edify-1.0.0/docs/library/auth/password.rst +63 -0
  161. edify-1.0.0/docs/library/auth/pin.rst +43 -0
  162. edify-1.0.0/docs/library/auth/refresh.rst +56 -0
  163. edify-1.0.0/docs/library/auth/secret.rst +43 -0
  164. edify-1.0.0/docs/library/auth/session.rst +60 -0
  165. edify-1.0.0/docs/library/auth/signing.rst +56 -0
  166. edify-1.0.0/docs/library/auth/sso.rst +54 -0
  167. edify-1.0.0/docs/library/auth/token.rst +59 -0
  168. edify-1.0.0/docs/library/auth/webauthn.rst +56 -0
  169. edify-1.0.0/docs/library/color/color.rst +61 -0
  170. edify-1.0.0/docs/library/color/filter.rst +58 -0
  171. edify-1.0.0/docs/library/color/gradient.rst +56 -0
  172. edify-1.0.0/docs/library/color/index.rst +36 -0
  173. edify-1.0.0/docs/library/color/palette.rst +55 -0
  174. edify-1.0.0/docs/library/color/swatch.rst +40 -0
  175. edify-1.0.0/docs/library/contact/address.rst +45 -0
  176. edify-1.0.0/docs/library/contact/email.rst +57 -0
  177. edify-1.0.0/docs/library/contact/email_rfc_5322.rst +57 -0
  178. edify-1.0.0/docs/library/contact/fax.rst +39 -0
  179. edify-1.0.0/docs/library/contact/handle.rst +53 -0
  180. edify-1.0.0/docs/library/contact/index.rst +44 -0
  181. edify-1.0.0/docs/library/contact/pager.rst +36 -0
  182. edify-1.0.0/docs/library/contact/phone.rst +59 -0
  183. edify-1.0.0/docs/library/contact/username.rst +61 -0
  184. edify-1.0.0/docs/library/data/avro.rst +43 -0
  185. edify-1.0.0/docs/library/data/csv.rst +62 -0
  186. edify-1.0.0/docs/library/data/hdf5.rst +43 -0
  187. edify-1.0.0/docs/library/data/html.rst +57 -0
  188. edify-1.0.0/docs/library/data/index.rst +62 -0
  189. edify-1.0.0/docs/library/data/ini.rst +57 -0
  190. edify-1.0.0/docs/library/data/json.rst +66 -0
  191. edify-1.0.0/docs/library/data/msgpack.rst +58 -0
  192. edify-1.0.0/docs/library/data/orc.rst +37 -0
  193. edify-1.0.0/docs/library/data/parquet.rst +45 -0
  194. edify-1.0.0/docs/library/data/protobuf.rst +59 -0
  195. edify-1.0.0/docs/library/data/toml.rst +59 -0
  196. edify-1.0.0/docs/library/data/tsv.rst +58 -0
  197. edify-1.0.0/docs/library/data/xml.rst +61 -0
  198. edify-1.0.0/docs/library/data/yaml.rst +64 -0
  199. edify-1.0.0/docs/library/document/docx.rst +42 -0
  200. edify-1.0.0/docs/library/document/epub.rst +35 -0
  201. edify-1.0.0/docs/library/document/index.rst +54 -0
  202. edify-1.0.0/docs/library/document/mobi.rst +43 -0
  203. edify-1.0.0/docs/library/document/odt.rst +40 -0
  204. edify-1.0.0/docs/library/document/pdf.rst +44 -0
  205. edify-1.0.0/docs/library/document/pptx.rst +33 -0
  206. edify-1.0.0/docs/library/document/readme.rst +47 -0
  207. edify-1.0.0/docs/library/document/rtf.rst +38 -0
  208. edify-1.0.0/docs/library/document/svg.rst +40 -0
  209. edify-1.0.0/docs/library/document/tex.rst +42 -0
  210. edify-1.0.0/docs/library/document/xlsx.rst +36 -0
  211. edify-1.0.0/docs/library/financial/card.rst +42 -0
  212. edify-1.0.0/docs/library/financial/crypto.rst +42 -0
  213. edify-1.0.0/docs/library/financial/currency.rst +39 -0
  214. edify-1.0.0/docs/library/financial/index.rst +46 -0
  215. edify-1.0.0/docs/library/financial/routing.rst +38 -0
  216. edify-1.0.0/docs/library/financial/sortcode.rst +39 -0
  217. edify-1.0.0/docs/library/financial/vat.rst +41 -0
  218. edify-1.0.0/docs/library/financial/wallet.rst +51 -0
  219. edify-1.0.0/docs/library/geo/altitude.rst +40 -0
  220. edify-1.0.0/docs/library/geo/bearing.rst +42 -0
  221. edify-1.0.0/docs/library/geo/coordinate.rst +54 -0
  222. edify-1.0.0/docs/library/geo/geohash.rst +42 -0
  223. edify-1.0.0/docs/library/geo/index.rst +44 -0
  224. edify-1.0.0/docs/library/geo/mgrs.rst +43 -0
  225. edify-1.0.0/docs/library/geo/place.rst +42 -0
  226. edify-1.0.0/docs/library/geo/plus.rst +51 -0
  227. edify-1.0.0/docs/library/geo/postal.rst +44 -0
  228. edify-1.0.0/docs/library/grammar/abnf.rst +42 -0
  229. edify-1.0.0/docs/library/grammar/antlr.rst +40 -0
  230. edify-1.0.0/docs/library/grammar/bnf.rst +42 -0
  231. edify-1.0.0/docs/library/grammar/ebnf.rst +41 -0
  232. edify-1.0.0/docs/library/grammar/index.rst +42 -0
  233. edify-1.0.0/docs/library/grammar/peg.rst +41 -0
  234. edify-1.0.0/docs/library/grammar/pest.rst +43 -0
  235. edify-1.0.0/docs/library/identifier/arn.rst +43 -0
  236. edify-1.0.0/docs/library/identifier/asin.rst +38 -0
  237. edify-1.0.0/docs/library/identifier/bic.rst +43 -0
  238. edify-1.0.0/docs/library/identifier/cusip.rst +38 -0
  239. edify-1.0.0/docs/library/identifier/did.rst +42 -0
  240. edify-1.0.0/docs/library/identifier/ein.rst +42 -0
  241. edify-1.0.0/docs/library/identifier/guid.rst +48 -0
  242. edify-1.0.0/docs/library/identifier/iata.rst +41 -0
  243. edify-1.0.0/docs/library/identifier/iban.rst +44 -0
  244. edify-1.0.0/docs/library/identifier/icao.rst +41 -0
  245. edify-1.0.0/docs/library/identifier/iccid.rst +38 -0
  246. edify-1.0.0/docs/library/identifier/imei.rst +38 -0
  247. edify-1.0.0/docs/library/identifier/imo.rst +39 -0
  248. edify-1.0.0/docs/library/identifier/index.rst +87 -0
  249. edify-1.0.0/docs/library/identifier/isin.rst +41 -0
  250. edify-1.0.0/docs/library/identifier/itin.rst +51 -0
  251. edify-1.0.0/docs/library/identifier/lei.rst +40 -0
  252. edify-1.0.0/docs/library/identifier/mac.rst +40 -0
  253. edify-1.0.0/docs/library/identifier/meid.rst +37 -0
  254. edify-1.0.0/docs/library/identifier/mmsi.rst +39 -0
  255. edify-1.0.0/docs/library/identifier/orcid.rst +40 -0
  256. edify-1.0.0/docs/library/identifier/sedol.rst +38 -0
  257. edify-1.0.0/docs/library/identifier/sku.rst +41 -0
  258. edify-1.0.0/docs/library/identifier/ssn.rst +54 -0
  259. edify-1.0.0/docs/library/identifier/tin.rst +40 -0
  260. edify-1.0.0/docs/library/identifier/uuid.rst +53 -0
  261. edify-1.0.0/docs/library/identifier/vin.rst +53 -0
  262. edify-1.0.0/docs/library/index.rst +78 -0
  263. edify-1.0.0/docs/library/media/charset.rst +42 -0
  264. edify-1.0.0/docs/library/media/codec.rst +42 -0
  265. edify-1.0.0/docs/library/media/encoding.rst +55 -0
  266. edify-1.0.0/docs/library/media/extension.rst +40 -0
  267. edify-1.0.0/docs/library/media/favicon.rst +39 -0
  268. edify-1.0.0/docs/library/media/filename.rst +46 -0
  269. edify-1.0.0/docs/library/media/glob.rst +42 -0
  270. edify-1.0.0/docs/library/media/index.rst +49 -0
  271. edify-1.0.0/docs/library/media/locale.rst +55 -0
  272. edify-1.0.0/docs/library/media/mimetype.rst +43 -0
  273. edify-1.0.0/docs/library/media/regex.rst +43 -0
  274. edify-1.0.0/docs/library/media/shebang.rst +42 -0
  275. edify-1.0.0/docs/library/medical/blood.rst +41 -0
  276. edify-1.0.0/docs/library/medical/dicom.rst +40 -0
  277. edify-1.0.0/docs/library/medical/dosage.rst +52 -0
  278. edify-1.0.0/docs/library/medical/index.rst +37 -0
  279. edify-1.0.0/docs/library/medical/medical.rst +50 -0
  280. edify-1.0.0/docs/library/numeric/fraction.rst +53 -0
  281. edify-1.0.0/docs/library/numeric/hash.rst +54 -0
  282. edify-1.0.0/docs/library/numeric/index.rst +47 -0
  283. edify-1.0.0/docs/library/numeric/integer.rst +43 -0
  284. edify-1.0.0/docs/library/numeric/natural.rst +51 -0
  285. edify-1.0.0/docs/library/numeric/number.rst +57 -0
  286. edify-1.0.0/docs/library/numeric/ordinal.rst +57 -0
  287. edify-1.0.0/docs/library/numeric/percentage.rst +55 -0
  288. edify-1.0.0/docs/library/numeric/ratio.rst +43 -0
  289. edify-1.0.0/docs/library/numeric/roman.rst +56 -0
  290. edify-1.0.0/docs/library/numeric/scientific.rst +44 -0
  291. edify-1.0.0/docs/library/product/barcode.rst +39 -0
  292. edify-1.0.0/docs/library/product/gtin.rst +43 -0
  293. edify-1.0.0/docs/library/product/index.rst +31 -0
  294. edify-1.0.0/docs/library/product/mpn.rst +43 -0
  295. edify-1.0.0/docs/library/publishing/arxiv.rst +49 -0
  296. edify-1.0.0/docs/library/publishing/doi.rst +42 -0
  297. edify-1.0.0/docs/library/publishing/index.rst +35 -0
  298. edify-1.0.0/docs/library/publishing/isbn.rst +44 -0
  299. edify-1.0.0/docs/library/publishing/issn.rst +45 -0
  300. edify-1.0.0/docs/library/publishing/pmc.rst +37 -0
  301. edify-1.0.0/docs/library/publishing/pmid.rst +38 -0
  302. edify-1.0.0/docs/library/security/age.rst +40 -0
  303. edify-1.0.0/docs/library/security/certificate.rst +41 -0
  304. edify-1.0.0/docs/library/security/csr.rst +40 -0
  305. edify-1.0.0/docs/library/security/der.rst +42 -0
  306. edify-1.0.0/docs/library/security/index.rst +52 -0
  307. edify-1.0.0/docs/library/security/keyring.rst +40 -0
  308. edify-1.0.0/docs/library/security/nonce.rst +42 -0
  309. edify-1.0.0/docs/library/security/pem.rst +44 -0
  310. edify-1.0.0/docs/library/security/pgp.rst +41 -0
  311. edify-1.0.0/docs/library/security/signature.rst +42 -0
  312. edify-1.0.0/docs/library/security/ssh.rst +57 -0
  313. edify-1.0.0/docs/library/security/x509.rst +39 -0
  314. edify-1.0.0/docs/library/software/bump.rst +48 -0
  315. edify-1.0.0/docs/library/software/cargo.rst +50 -0
  316. edify-1.0.0/docs/library/software/checksum.rst +40 -0
  317. edify-1.0.0/docs/library/software/component.rst +40 -0
  318. edify-1.0.0/docs/library/software/digest.rst +42 -0
  319. edify-1.0.0/docs/library/software/docker.rst +40 -0
  320. edify-1.0.0/docs/library/software/git.rst +41 -0
  321. edify-1.0.0/docs/library/software/image.rst +38 -0
  322. edify-1.0.0/docs/library/software/index.rst +58 -0
  323. edify-1.0.0/docs/library/software/makefile.rst +42 -0
  324. edify-1.0.0/docs/library/software/package.rst +41 -0
  325. edify-1.0.0/docs/library/software/ref.rst +56 -0
  326. edify-1.0.0/docs/library/software/semver.rst +58 -0
  327. edify-1.0.0/docs/library/software/version.rst +55 -0
  328. edify-1.0.0/docs/library/temporal/cron.rst +55 -0
  329. edify-1.0.0/docs/library/temporal/date.rst +43 -0
  330. edify-1.0.0/docs/library/temporal/datetime.rst +50 -0
  331. edify-1.0.0/docs/library/temporal/duration.rst +56 -0
  332. edify-1.0.0/docs/library/temporal/epoch.rst +44 -0
  333. edify-1.0.0/docs/library/temporal/index.rst +59 -0
  334. edify-1.0.0/docs/library/temporal/interval.rst +50 -0
  335. edify-1.0.0/docs/library/temporal/iso_date.rst +55 -0
  336. edify-1.0.0/docs/library/temporal/offset.rst +51 -0
  337. edify-1.0.0/docs/library/temporal/time.rst +54 -0
  338. edify-1.0.0/docs/library/temporal/timestamp.rst +41 -0
  339. edify-1.0.0/docs/library/temporal/timezone.rst +57 -0
  340. edify-1.0.0/docs/library/temporal/year.rst +39 -0
  341. edify-1.0.0/docs/library/text/alpha.rst +45 -0
  342. edify-1.0.0/docs/library/text/alphanumeric.rst +45 -0
  343. edify-1.0.0/docs/library/text/ascii.rst +46 -0
  344. edify-1.0.0/docs/library/text/base.rst +57 -0
  345. edify-1.0.0/docs/library/text/emoji.rst +43 -0
  346. edify-1.0.0/docs/library/text/index.rst +54 -0
  347. edify-1.0.0/docs/library/text/numeric.rst +44 -0
  348. edify-1.0.0/docs/library/text/printable.rst +46 -0
  349. edify-1.0.0/docs/library/text/script.rst +53 -0
  350. edify-1.0.0/docs/library/text/slug.rst +57 -0
  351. edify-1.0.0/docs/library/text/unicode.rst +53 -0
  352. edify-1.0.0/docs/library/text/word.rst +55 -0
  353. edify-1.0.0/docs/library/transport/aircraft.rst +41 -0
  354. edify-1.0.0/docs/library/transport/flight.rst +43 -0
  355. edify-1.0.0/docs/library/transport/index.rst +33 -0
  356. edify-1.0.0/docs/library/transport/plate.rst +41 -0
  357. edify-1.0.0/docs/library/transport/vehicle.rst +40 -0
  358. edify-1.0.0/docs/library/web/apache.rst +51 -0
  359. edify-1.0.0/docs/library/web/captcha.rst +38 -0
  360. edify-1.0.0/docs/library/web/cookie.rst +44 -0
  361. edify-1.0.0/docs/library/web/csp.rst +44 -0
  362. edify-1.0.0/docs/library/web/htaccess.rst +50 -0
  363. edify-1.0.0/docs/library/web/humans.rst +39 -0
  364. edify-1.0.0/docs/library/web/index.rst +47 -0
  365. edify-1.0.0/docs/library/web/manifest.rst +41 -0
  366. edify-1.0.0/docs/library/web/nginx.rst +50 -0
  367. edify-1.0.0/docs/library/web/robots.rst +43 -0
  368. edify-1.0.0/docs/library/web/sitemap.rst +38 -0
  369. edify-1.0.0/docs/library/web/useragent.rst +45 -0
  370. edify-1.0.0/docs/playground.rst +17 -0
  371. edify-1.0.0/docs/requirements.txt +1 -0
  372. edify-1.0.0/docs/upgrading/0.3-to-1.0.rst +161 -0
  373. edify-1.0.0/docs/upgrading/index.rst +12 -0
  374. edify-1.0.0/edify/__init__.py +121 -0
  375. edify-1.0.0/edify/atoms/__init__.py +169 -0
  376. edify-1.0.0/edify/atoms/alnum.py +8 -0
  377. edify-1.0.0/edify/atoms/ascii.py +8 -0
  378. edify-1.0.0/edify/atoms/base32.py +10 -0
  379. edify-1.0.0/edify/atoms/base58.py +19 -0
  380. edify-1.0.0/edify/atoms/base64.py +20 -0
  381. edify-1.0.0/edify/atoms/base64url.py +18 -0
  382. edify-1.0.0/edify/atoms/bic.py +27 -0
  383. edify-1.0.0/edify/atoms/binnum.py +8 -0
  384. edify-1.0.0/edify/atoms/boolean.py +29 -0
  385. edify-1.0.0/edify/atoms/braces.py +8 -0
  386. edify-1.0.0/edify/atoms/brackets.py +8 -0
  387. edify-1.0.0/edify/atoms/cidr.py +9 -0
  388. edify-1.0.0/edify/atoms/clock.py +23 -0
  389. edify-1.0.0/edify/atoms/clock12.py +27 -0
  390. edify-1.0.0/edify/atoms/creditcard.py +8 -0
  391. edify-1.0.0/edify/atoms/currency.py +8 -0
  392. edify-1.0.0/edify/atoms/day.py +12 -0
  393. edify-1.0.0/edify/atoms/decimal.py +8 -0
  394. edify-1.0.0/edify/atoms/duration.py +47 -0
  395. edify-1.0.0/edify/atoms/email.py +29 -0
  396. edify-1.0.0/edify/atoms/epoch.py +8 -0
  397. edify-1.0.0/edify/atoms/extension.py +8 -0
  398. edify-1.0.0/edify/atoms/filename.py +8 -0
  399. edify-1.0.0/edify/atoms/filepath.py +30 -0
  400. edify-1.0.0/edify/atoms/floatnum.py +28 -0
  401. edify-1.0.0/edify/atoms/guid.py +25 -0
  402. edify-1.0.0/edify/atoms/hexcolor.py +22 -0
  403. edify-1.0.0/edify/atoms/hexnum.py +9 -0
  404. edify-1.0.0/edify/atoms/hexstring.py +9 -0
  405. edify-1.0.0/edify/atoms/hostname.py +9 -0
  406. edify-1.0.0/edify/atoms/httpmethod.py +18 -0
  407. edify-1.0.0/edify/atoms/httpstatus.py +8 -0
  408. edify-1.0.0/edify/atoms/iban.py +19 -0
  409. edify-1.0.0/edify/atoms/integer.py +8 -0
  410. edify-1.0.0/edify/atoms/ipv4.py +9 -0
  411. edify-1.0.0/edify/atoms/ipv6.py +21 -0
  412. edify-1.0.0/edify/atoms/isodate.py +8 -0
  413. edify-1.0.0/edify/atoms/isodatetime.py +45 -0
  414. edify-1.0.0/edify/atoms/label.py +32 -0
  415. edify-1.0.0/edify/atoms/letter.py +8 -0
  416. edify-1.0.0/edify/atoms/line.py +8 -0
  417. edify-1.0.0/edify/atoms/localpart.py +36 -0
  418. edify-1.0.0/edify/atoms/lower.py +8 -0
  419. edify-1.0.0/edify/atoms/mac.py +19 -0
  420. edify-1.0.0/edify/atoms/md5.py +9 -0
  421. edify-1.0.0/edify/atoms/mimetype.py +25 -0
  422. edify-1.0.0/edify/atoms/money.py +13 -0
  423. edify-1.0.0/edify/atoms/month.py +11 -0
  424. edify-1.0.0/edify/atoms/natural.py +8 -0
  425. edify-1.0.0/edify/atoms/nibble.py +8 -0
  426. edify-1.0.0/edify/atoms/objectid.py +9 -0
  427. edify-1.0.0/edify/atoms/octet.py +14 -0
  428. edify-1.0.0/edify/atoms/octnum.py +8 -0
  429. edify-1.0.0/edify/atoms/oid.py +8 -0
  430. edify-1.0.0/edify/atoms/parens.py +8 -0
  431. edify-1.0.0/edify/atoms/percent.py +19 -0
  432. edify-1.0.0/edify/atoms/port.py +16 -0
  433. edify-1.0.0/edify/atoms/printable.py +8 -0
  434. edify-1.0.0/edify/atoms/protocol.py +18 -0
  435. edify-1.0.0/edify/atoms/quoted.py +8 -0
  436. edify-1.0.0/edify/atoms/ratio.py +8 -0
  437. edify-1.0.0/edify/atoms/rgbcolor.py +27 -0
  438. edify-1.0.0/edify/atoms/scheme.py +20 -0
  439. edify-1.0.0/edify/atoms/scientific.py +25 -0
  440. edify-1.0.0/edify/atoms/semver.py +16 -0
  441. edify-1.0.0/edify/atoms/sha256.py +9 -0
  442. edify-1.0.0/edify/atoms/signed.py +8 -0
  443. edify-1.0.0/edify/atoms/slug.py +24 -0
  444. edify-1.0.0/edify/atoms/space.py +8 -0
  445. edify-1.0.0/edify/atoms/timezone.py +11 -0
  446. edify-1.0.0/edify/atoms/tld.py +8 -0
  447. edify-1.0.0/edify/atoms/truefalse.py +15 -0
  448. edify-1.0.0/edify/atoms/ulid.py +20 -0
  449. edify-1.0.0/edify/atoms/unsigned.py +8 -0
  450. edify-1.0.0/edify/atoms/upper.py +8 -0
  451. edify-1.0.0/edify/atoms/uri.py +23 -0
  452. edify-1.0.0/edify/atoms/url.py +16 -0
  453. edify-1.0.0/edify/atoms/username.py +19 -0
  454. edify-1.0.0/edify/atoms/uuid.py +27 -0
  455. edify-1.0.0/edify/atoms/weekday.py +23 -0
  456. edify-1.0.0/edify/atoms/word.py +8 -0
  457. edify-1.0.0/edify/atoms/year.py +8 -0
  458. edify-1.0.0/edify/atoms/yesno.py +19 -0
  459. edify-1.0.0/edify/builder/__init__.py +3 -0
  460. edify-1.0.0/edify/builder/core.py +85 -0
  461. edify-1.0.0/edify/builder/diagnose.py +132 -0
  462. edify-1.0.0/edify/builder/fluent.py +61 -0
  463. edify-1.0.0/edify/builder/merge.py +291 -0
  464. edify-1.0.0/edify/builder/mixins/__init__.py +0 -0
  465. edify-1.0.0/edify/builder/mixins/anchors.py +40 -0
  466. edify-1.0.0/edify/builder/mixins/assertions.py +47 -0
  467. edify-1.0.0/edify/builder/mixins/captures.py +118 -0
  468. edify-1.0.0/edify/builder/mixins/chain.py +64 -0
  469. edify-1.0.0/edify/builder/mixins/chars.py +178 -0
  470. edify-1.0.0/edify/builder/mixins/classes.py +120 -0
  471. edify-1.0.0/edify/builder/mixins/flags.py +52 -0
  472. edify-1.0.0/edify/builder/mixins/groups.py +109 -0
  473. edify-1.0.0/edify/builder/mixins/matcher.py +134 -0
  474. edify-1.0.0/edify/builder/mixins/operators.py +40 -0
  475. edify-1.0.0/edify/builder/mixins/quantifiers.py +235 -0
  476. edify-1.0.0/edify/builder/mixins/subexpression.py +110 -0
  477. edify-1.0.0/edify/builder/mixins/terminals.py +149 -0
  478. edify-1.0.0/edify/builder/mixins/testing.py +69 -0
  479. edify-1.0.0/edify/builder/reverse.py +264 -0
  480. edify-1.0.0/edify/builder/sre.py +75 -0
  481. edify-1.0.0/edify/builder/types/__init__.py +0 -0
  482. edify-1.0.0/edify/builder/types/engine.py +8 -0
  483. edify-1.0.0/edify/builder/types/flags.py +67 -0
  484. edify-1.0.0/edify/builder/types/frame.py +72 -0
  485. edify-1.0.0/edify/builder/types/protocol.py +50 -0
  486. edify-1.0.0/edify/builder/types/state.py +123 -0
  487. edify-1.0.0/edify/compile/__init__.py +4 -0
  488. edify-1.0.0/edify/compile/backend.py +93 -0
  489. edify-1.0.0/edify/compile/captures.py +43 -0
  490. edify-1.0.0/edify/compile/chars.py +47 -0
  491. edify-1.0.0/edify/compile/dispatch.py +48 -0
  492. edify-1.0.0/edify/compile/escape.py +89 -0
  493. edify-1.0.0/edify/compile/fuse.py +62 -0
  494. edify-1.0.0/edify/compile/groups.py +88 -0
  495. edify-1.0.0/edify/compile/leaves.py +79 -0
  496. edify-1.0.0/edify/compile/quantifier/__init__.py +4 -0
  497. edify-1.0.0/edify/compile/quantifier/apply.py +43 -0
  498. edify-1.0.0/edify/compile/quantifier/suffix.py +56 -0
  499. edify-1.0.0/edify/compile/redos.py +91 -0
  500. edify-1.0.0/edify/compile/root.py +25 -0
  501. edify-1.0.0/edify/compile/types.py +17 -0
  502. edify-1.0.0/edify/elements/__init__.py +3 -0
  503. edify-1.0.0/edify/elements/types/__init__.py +4 -0
  504. edify-1.0.0/edify/elements/types/base.py +16 -0
  505. edify-1.0.0/edify/elements/types/captures.py +64 -0
  506. edify-1.0.0/edify/elements/types/chars.py +101 -0
  507. edify-1.0.0/edify/elements/types/groups.py +98 -0
  508. edify-1.0.0/edify/elements/types/leaves.py +113 -0
  509. edify-1.0.0/edify/elements/types/quantifiers.py +152 -0
  510. edify-1.0.0/edify/elements/types/root.py +25 -0
  511. edify-1.0.0/edify/elements/types/union.py +166 -0
  512. edify-1.0.0/edify/elements/walk.py +42 -0
  513. edify-1.0.0/edify/errors/__init__.py +4 -0
  514. edify-1.0.0/edify/errors/anchors.py +78 -0
  515. edify-1.0.0/edify/errors/backend.py +63 -0
  516. edify-1.0.0/edify/errors/base.py +12 -0
  517. edify-1.0.0/edify/errors/captures.py +37 -0
  518. edify-1.0.0/edify/errors/comparison.py +66 -0
  519. edify-1.0.0/edify/errors/context.py +91 -0
  520. edify-1.0.0/edify/errors/formatting.py +133 -0
  521. edify-1.0.0/edify/errors/input.py +248 -0
  522. edify-1.0.0/edify/errors/integration.py +24 -0
  523. edify-1.0.0/edify/errors/introspect.py +91 -0
  524. edify-1.0.0/edify/errors/naming.py +74 -0
  525. edify-1.0.0/edify/errors/quantifier.py +84 -0
  526. edify-1.0.0/edify/errors/serialize.py +103 -0
  527. edify-1.0.0/edify/errors/structure.py +86 -0
  528. edify-1.0.0/edify/errors/syntax.py +20 -0
  529. edify-1.0.0/edify/errors/testing.py +57 -0
  530. edify-1.0.0/edify/integrations/__init__.py +0 -0
  531. edify-1.0.0/edify/integrations/django.py +51 -0
  532. edify-1.0.0/edify/integrations/fastapi.py +44 -0
  533. edify-1.0.0/edify/integrations/pydantic.py +44 -0
  534. edify-1.0.0/edify/introspect/__init__.py +5 -0
  535. edify-1.0.0/edify/introspect/ascii.py +448 -0
  536. edify-1.0.0/edify/introspect/explain.py +560 -0
  537. edify-1.0.0/edify/introspect/graphviz.py +279 -0
  538. edify-1.0.0/edify/introspect/types.py +48 -0
  539. edify-1.0.0/edify/introspect/verbose.py +369 -0
  540. edify-1.0.0/edify/introspect/visualize.py +45 -0
  541. edify-1.0.0/edify/library/__init__.py +463 -0
  542. edify-1.0.0/edify/library/_support/__init__.py +0 -0
  543. edify-1.0.0/edify/library/address/__init__.py +33 -0
  544. edify-1.0.0/edify/library/address/cidr.py +55 -0
  545. edify-1.0.0/edify/library/address/domain.py +32 -0
  546. edify-1.0.0/edify/library/address/hostname.py +42 -0
  547. edify-1.0.0/edify/library/address/ip.py +220 -0
  548. edify-1.0.0/edify/library/address/path.py +61 -0
  549. edify-1.0.0/edify/library/address/port.py +16 -0
  550. edify-1.0.0/edify/library/address/ptr.py +39 -0
  551. edify-1.0.0/edify/library/address/socket.py +63 -0
  552. edify-1.0.0/edify/library/address/subdomain.py +31 -0
  553. edify-1.0.0/edify/library/address/subnet.py +36 -0
  554. edify-1.0.0/edify/library/address/tld.py +17 -0
  555. edify-1.0.0/edify/library/address/uri.py +27 -0
  556. edify-1.0.0/edify/library/address/url.py +84 -0
  557. edify-1.0.0/edify/library/address/zip.py +30 -0
  558. edify-1.0.0/edify/library/api/__init__.py +27 -0
  559. edify-1.0.0/edify/library/api/atom.py +27 -0
  560. edify-1.0.0/edify/library/api/graphql.py +63 -0
  561. edify-1.0.0/edify/library/api/hal.py +34 -0
  562. edify-1.0.0/edify/library/api/jsonapi.py +35 -0
  563. edify-1.0.0/edify/library/api/oauth.py +32 -0
  564. edify-1.0.0/edify/library/api/openapi.py +66 -0
  565. edify-1.0.0/edify/library/api/openid.py +40 -0
  566. edify-1.0.0/edify/library/api/rss.py +28 -0
  567. edify-1.0.0/edify/library/api/saml.py +44 -0
  568. edify-1.0.0/edify/library/api/soap.py +32 -0
  569. edify-1.0.0/edify/library/api/swagger.py +53 -0
  570. edify-1.0.0/edify/library/api/webhook.py +43 -0
  571. edify-1.0.0/edify/library/auth/__init__.py +41 -0
  572. edify-1.0.0/edify/library/auth/apikey.py +19 -0
  573. edify-1.0.0/edify/library/auth/bearer.py +20 -0
  574. edify-1.0.0/edify/library/auth/challenge.py +21 -0
  575. edify-1.0.0/edify/library/auth/csrf.py +19 -0
  576. edify-1.0.0/edify/library/auth/hmac.py +18 -0
  577. edify-1.0.0/edify/library/auth/jwt.py +37 -0
  578. edify-1.0.0/edify/library/auth/mfa.py +8 -0
  579. edify-1.0.0/edify/library/auth/mnemonic.py +22 -0
  580. edify-1.0.0/edify/library/auth/otp.py +20 -0
  581. edify-1.0.0/edify/library/auth/passkey.py +21 -0
  582. edify-1.0.0/edify/library/auth/password.py +97 -0
  583. edify-1.0.0/edify/library/auth/pin.py +8 -0
  584. edify-1.0.0/edify/library/auth/refresh.py +21 -0
  585. edify-1.0.0/edify/library/auth/secret.py +19 -0
  586. edify-1.0.0/edify/library/auth/session.py +19 -0
  587. edify-1.0.0/edify/library/auth/signing.py +21 -0
  588. edify-1.0.0/edify/library/auth/sso.py +22 -0
  589. edify-1.0.0/edify/library/auth/token.py +19 -0
  590. edify-1.0.0/edify/library/auth/webauthn.py +19 -0
  591. edify-1.0.0/edify/library/color/__init__.py +7 -0
  592. edify-1.0.0/edify/library/color/any.py +128 -0
  593. edify-1.0.0/edify/library/color/filter.py +28 -0
  594. edify-1.0.0/edify/library/color/gradient.py +26 -0
  595. edify-1.0.0/edify/library/color/palette.py +46 -0
  596. edify-1.0.0/edify/library/color/swatch.py +25 -0
  597. edify-1.0.0/edify/library/contact/__init__.py +18 -0
  598. edify-1.0.0/edify/library/contact/address.py +26 -0
  599. edify-1.0.0/edify/library/contact/email.py +223 -0
  600. edify-1.0.0/edify/library/contact/fax.py +52 -0
  601. edify-1.0.0/edify/library/contact/handle.py +20 -0
  602. edify-1.0.0/edify/library/contact/pager.py +8 -0
  603. edify-1.0.0/edify/library/contact/phone.py +61 -0
  604. edify-1.0.0/edify/library/contact/username.py +27 -0
  605. edify-1.0.0/edify/library/data/__init__.py +31 -0
  606. edify-1.0.0/edify/library/data/avro.py +12 -0
  607. edify-1.0.0/edify/library/data/csv.py +33 -0
  608. edify-1.0.0/edify/library/data/hdf5.py +18 -0
  609. edify-1.0.0/edify/library/data/html.py +31 -0
  610. edify-1.0.0/edify/library/data/ini.py +42 -0
  611. edify-1.0.0/edify/library/data/json.py +54 -0
  612. edify-1.0.0/edify/library/data/msgpack.py +26 -0
  613. edify-1.0.0/edify/library/data/orc.py +8 -0
  614. edify-1.0.0/edify/library/data/parquet.py +10 -0
  615. edify-1.0.0/edify/library/data/protobuf.py +53 -0
  616. edify-1.0.0/edify/library/data/toml.py +54 -0
  617. edify-1.0.0/edify/library/data/tsv.py +27 -0
  618. edify-1.0.0/edify/library/data/xml.py +39 -0
  619. edify-1.0.0/edify/library/data/yaml.py +47 -0
  620. edify-1.0.0/edify/library/document/__init__.py +25 -0
  621. edify-1.0.0/edify/library/document/docx.py +21 -0
  622. edify-1.0.0/edify/library/document/epub.py +21 -0
  623. edify-1.0.0/edify/library/document/mobi.py +20 -0
  624. edify-1.0.0/edify/library/document/odt.py +21 -0
  625. edify-1.0.0/edify/library/document/pdf.py +19 -0
  626. edify-1.0.0/edify/library/document/pptx.py +21 -0
  627. edify-1.0.0/edify/library/document/readme.py +28 -0
  628. edify-1.0.0/edify/library/document/rtf.py +18 -0
  629. edify-1.0.0/edify/library/document/svg.py +30 -0
  630. edify-1.0.0/edify/library/document/tex.py +27 -0
  631. edify-1.0.0/edify/library/document/xlsx.py +21 -0
  632. edify-1.0.0/edify/library/financial/__init__.py +9 -0
  633. edify-1.0.0/edify/library/financial/card.py +28 -0
  634. edify-1.0.0/edify/library/financial/crypto.py +19 -0
  635. edify-1.0.0/edify/library/financial/currency.py +10 -0
  636. edify-1.0.0/edify/library/financial/routing.py +8 -0
  637. edify-1.0.0/edify/library/financial/sortcode.py +23 -0
  638. edify-1.0.0/edify/library/financial/vat.py +8 -0
  639. edify-1.0.0/edify/library/financial/wallet.py +94 -0
  640. edify-1.0.0/edify/library/geo/__init__.py +10 -0
  641. edify-1.0.0/edify/library/geo/altitude.py +26 -0
  642. edify-1.0.0/edify/library/geo/bearing.py +33 -0
  643. edify-1.0.0/edify/library/geo/coordinate.py +64 -0
  644. edify-1.0.0/edify/library/geo/geohash.py +17 -0
  645. edify-1.0.0/edify/library/geo/mgrs.py +33 -0
  646. edify-1.0.0/edify/library/geo/place.py +23 -0
  647. edify-1.0.0/edify/library/geo/plus.py +28 -0
  648. edify-1.0.0/edify/library/geo/postal.py +237 -0
  649. edify-1.0.0/edify/library/grammar/__init__.py +8 -0
  650. edify-1.0.0/edify/library/grammar/abnf.py +29 -0
  651. edify-1.0.0/edify/library/grammar/antlr.py +27 -0
  652. edify-1.0.0/edify/library/grammar/bnf.py +25 -0
  653. edify-1.0.0/edify/library/grammar/ebnf.py +26 -0
  654. edify-1.0.0/edify/library/grammar/peg.py +25 -0
  655. edify-1.0.0/edify/library/grammar/pest.py +30 -0
  656. edify-1.0.0/edify/library/identifier/__init__.py +55 -0
  657. edify-1.0.0/edify/library/identifier/arn.py +40 -0
  658. edify-1.0.0/edify/library/identifier/asin.py +17 -0
  659. edify-1.0.0/edify/library/identifier/bic.py +30 -0
  660. edify-1.0.0/edify/library/identifier/cusip.py +17 -0
  661. edify-1.0.0/edify/library/identifier/did.py +23 -0
  662. edify-1.0.0/edify/library/identifier/ein.py +8 -0
  663. edify-1.0.0/edify/library/identifier/guid.py +62 -0
  664. edify-1.0.0/edify/library/identifier/iata.py +10 -0
  665. edify-1.0.0/edify/library/identifier/iban.py +25 -0
  666. edify-1.0.0/edify/library/identifier/icao.py +10 -0
  667. edify-1.0.0/edify/library/identifier/iccid.py +8 -0
  668. edify-1.0.0/edify/library/identifier/imei.py +8 -0
  669. edify-1.0.0/edify/library/identifier/imo.py +10 -0
  670. edify-1.0.0/edify/library/identifier/isin.py +24 -0
  671. edify-1.0.0/edify/library/identifier/itin.py +33 -0
  672. edify-1.0.0/edify/library/identifier/lei.py +17 -0
  673. edify-1.0.0/edify/library/identifier/mac.py +41 -0
  674. edify-1.0.0/edify/library/identifier/meid.py +17 -0
  675. edify-1.0.0/edify/library/identifier/mmsi.py +8 -0
  676. edify-1.0.0/edify/library/identifier/orcid.py +30 -0
  677. edify-1.0.0/edify/library/identifier/sedol.py +25 -0
  678. edify-1.0.0/edify/library/identifier/sku.py +22 -0
  679. edify-1.0.0/edify/library/identifier/ssn.py +51 -0
  680. edify-1.0.0/edify/library/identifier/tin.py +13 -0
  681. edify-1.0.0/edify/library/identifier/uuid.py +53 -0
  682. edify-1.0.0/edify/library/identifier/vin.py +22 -0
  683. edify-1.0.0/edify/library/media/__init__.py +25 -0
  684. edify-1.0.0/edify/library/media/charset.py +23 -0
  685. edify-1.0.0/edify/library/media/codec.py +22 -0
  686. edify-1.0.0/edify/library/media/encoding.py +39 -0
  687. edify-1.0.0/edify/library/media/extension.py +8 -0
  688. edify-1.0.0/edify/library/media/favicon.py +43 -0
  689. edify-1.0.0/edify/library/media/filename.py +39 -0
  690. edify-1.0.0/edify/library/media/glob.py +22 -0
  691. edify-1.0.0/edify/library/media/locale.py +37 -0
  692. edify-1.0.0/edify/library/media/mimetype.py +38 -0
  693. edify-1.0.0/edify/library/media/regex.py +22 -0
  694. edify-1.0.0/edify/library/media/shebang.py +42 -0
  695. edify-1.0.0/edify/library/medical/__init__.py +6 -0
  696. edify-1.0.0/edify/library/medical/any.py +35 -0
  697. edify-1.0.0/edify/library/medical/blood.py +21 -0
  698. edify-1.0.0/edify/library/medical/dicom.py +20 -0
  699. edify-1.0.0/edify/library/medical/dosage.py +51 -0
  700. edify-1.0.0/edify/library/numeric/__init__.py +23 -0
  701. edify-1.0.0/edify/library/numeric/fraction.py +28 -0
  702. edify-1.0.0/edify/library/numeric/hash.py +20 -0
  703. edify-1.0.0/edify/library/numeric/integer.py +10 -0
  704. edify-1.0.0/edify/library/numeric/natural.py +8 -0
  705. edify-1.0.0/edify/library/numeric/number.py +85 -0
  706. edify-1.0.0/edify/library/numeric/ordinal.py +22 -0
  707. edify-1.0.0/edify/library/numeric/percentage.py +27 -0
  708. edify-1.0.0/edify/library/numeric/ratio.py +10 -0
  709. edify-1.0.0/edify/library/numeric/roman.py +39 -0
  710. edify-1.0.0/edify/library/numeric/scientific.py +27 -0
  711. edify-1.0.0/edify/library/product/__init__.py +5 -0
  712. edify-1.0.0/edify/library/product/barcode.py +17 -0
  713. edify-1.0.0/edify/library/product/gtin.py +20 -0
  714. edify-1.0.0/edify/library/product/mpn.py +24 -0
  715. edify-1.0.0/edify/library/publishing/__init__.py +8 -0
  716. edify-1.0.0/edify/library/publishing/arxiv.py +43 -0
  717. edify-1.0.0/edify/library/publishing/doi.py +30 -0
  718. edify-1.0.0/edify/library/publishing/isbn.py +37 -0
  719. edify-1.0.0/edify/library/publishing/issn.py +22 -0
  720. edify-1.0.0/edify/library/publishing/pmc.py +8 -0
  721. edify-1.0.0/edify/library/publishing/pmid.py +8 -0
  722. edify-1.0.0/edify/library/security/__init__.py +25 -0
  723. edify-1.0.0/edify/library/security/age.py +24 -0
  724. edify-1.0.0/edify/library/security/certificate.py +29 -0
  725. edify-1.0.0/edify/library/security/csr.py +29 -0
  726. edify-1.0.0/edify/library/security/der.py +26 -0
  727. edify-1.0.0/edify/library/security/keyring.py +31 -0
  728. edify-1.0.0/edify/library/security/nonce.py +23 -0
  729. edify-1.0.0/edify/library/security/pem.py +30 -0
  730. edify-1.0.0/edify/library/security/pgp.py +31 -0
  731. edify-1.0.0/edify/library/security/signature.py +23 -0
  732. edify-1.0.0/edify/library/security/ssh.py +46 -0
  733. edify-1.0.0/edify/library/security/x509.py +33 -0
  734. edify-1.0.0/edify/library/software/__init__.py +29 -0
  735. edify-1.0.0/edify/library/software/bump.py +22 -0
  736. edify-1.0.0/edify/library/software/cargo.py +45 -0
  737. edify-1.0.0/edify/library/software/checksum.py +18 -0
  738. edify-1.0.0/edify/library/software/component.py +60 -0
  739. edify-1.0.0/edify/library/software/digest.py +28 -0
  740. edify-1.0.0/edify/library/software/docker.py +91 -0
  741. edify-1.0.0/edify/library/software/git.py +17 -0
  742. edify-1.0.0/edify/library/software/image.py +91 -0
  743. edify-1.0.0/edify/library/software/makefile.py +44 -0
  744. edify-1.0.0/edify/library/software/package.py +39 -0
  745. edify-1.0.0/edify/library/software/ref.py +52 -0
  746. edify-1.0.0/edify/library/software/semver.py +91 -0
  747. edify-1.0.0/edify/library/software/version.py +34 -0
  748. edify-1.0.0/edify/library/temporal/__init__.py +27 -0
  749. edify-1.0.0/edify/library/temporal/cron.py +48 -0
  750. edify-1.0.0/edify/library/temporal/date.py +36 -0
  751. edify-1.0.0/edify/library/temporal/datetime.py +81 -0
  752. edify-1.0.0/edify/library/temporal/duration.py +53 -0
  753. edify-1.0.0/edify/library/temporal/epoch.py +10 -0
  754. edify-1.0.0/edify/library/temporal/interval.py +101 -0
  755. edify-1.0.0/edify/library/temporal/iso.py +32 -0
  756. edify-1.0.0/edify/library/temporal/offset.py +25 -0
  757. edify-1.0.0/edify/library/temporal/time.py +54 -0
  758. edify-1.0.0/edify/library/temporal/timestamp.py +10 -0
  759. edify-1.0.0/edify/library/temporal/timezone.py +40 -0
  760. edify-1.0.0/edify/library/temporal/year.py +8 -0
  761. edify-1.0.0/edify/library/text/__init__.py +25 -0
  762. edify-1.0.0/edify/library/text/alpha.py +8 -0
  763. edify-1.0.0/edify/library/text/alphanumeric.py +8 -0
  764. edify-1.0.0/edify/library/text/ascii.py +10 -0
  765. edify-1.0.0/edify/library/text/base.py +56 -0
  766. edify-1.0.0/edify/library/text/emoji.py +17 -0
  767. edify-1.0.0/edify/library/text/numeric.py +8 -0
  768. edify-1.0.0/edify/library/text/printable.py +24 -0
  769. edify-1.0.0/edify/library/text/script.py +24 -0
  770. edify-1.0.0/edify/library/text/slug.py +28 -0
  771. edify-1.0.0/edify/library/text/unicode.py +37 -0
  772. edify-1.0.0/edify/library/text/word.py +10 -0
  773. edify-1.0.0/edify/library/transport/__init__.py +6 -0
  774. edify-1.0.0/edify/library/transport/aircraft.py +21 -0
  775. edify-1.0.0/edify/library/transport/flight.py +18 -0
  776. edify-1.0.0/edify/library/transport/plate.py +24 -0
  777. edify-1.0.0/edify/library/transport/vehicle.py +23 -0
  778. edify-1.0.0/edify/library/web/__init__.py +25 -0
  779. edify-1.0.0/edify/library/web/apache.py +57 -0
  780. edify-1.0.0/edify/library/web/captcha.py +19 -0
  781. edify-1.0.0/edify/library/web/cookie.py +28 -0
  782. edify-1.0.0/edify/library/web/csp.py +43 -0
  783. edify-1.0.0/edify/library/web/htaccess.py +63 -0
  784. edify-1.0.0/edify/library/web/humans.py +49 -0
  785. edify-1.0.0/edify/library/web/manifest.py +38 -0
  786. edify-1.0.0/edify/library/web/nginx.py +57 -0
  787. edify-1.0.0/edify/library/web/robots.py +41 -0
  788. edify-1.0.0/edify/library/web/sitemap.py +31 -0
  789. edify-1.0.0/edify/library/web/useragent.py +29 -0
  790. edify-1.0.0/edify/pattern/__init__.py +99 -0
  791. edify-1.0.0/edify/pattern/anchors.py +14 -0
  792. edify-1.0.0/edify/pattern/boundaries.py +8 -0
  793. edify-1.0.0/edify/pattern/classes.py +31 -0
  794. edify-1.0.0/edify/pattern/composition.py +81 -0
  795. edify-1.0.0/edify/pattern/factories/__init__.py +67 -0
  796. edify-1.0.0/edify/pattern/factories/assertions.py +64 -0
  797. edify-1.0.0/edify/pattern/factories/groups.py +107 -0
  798. edify-1.0.0/edify/pattern/factories/quantifiers.py +183 -0
  799. edify-1.0.0/edify/pattern/factories/values.py +82 -0
  800. edify-1.0.0/edify/pattern/factories/wrap.py +38 -0
  801. edify-1.0.0/edify/py.typed +0 -0
  802. edify-1.0.0/edify/result/__init__.py +4 -0
  803. edify-1.0.0/edify/result/match.py +134 -0
  804. edify-1.0.0/edify/result/regex.py +252 -0
  805. edify-1.0.0/edify/serialize/__init__.py +14 -0
  806. edify-1.0.0/edify/serialize/dump.py +73 -0
  807. edify-1.0.0/edify/serialize/kinds.py +133 -0
  808. edify-1.0.0/edify/serialize/load.py +147 -0
  809. edify-1.0.0/edify/serialize/types.py +9 -0
  810. edify-1.0.0/edify/serialize/version.py +16 -0
  811. edify-1.0.0/edify/testing/__init__.py +7 -0
  812. edify-1.0.0/edify/testing/snapshots.py +91 -0
  813. edify-1.0.0/edify/validate/__init__.py +3 -0
  814. edify-1.0.0/edify/validate/names.py +25 -0
  815. edify-1.0.0/pyproject.toml +181 -0
  816. edify-1.0.0/tests/atoms/alnum.test.py +26 -0
  817. edify-1.0.0/tests/atoms/ascii.test.py +26 -0
  818. edify-1.0.0/tests/atoms/base32.test.py +26 -0
  819. edify-1.0.0/tests/atoms/base58.test.py +26 -0
  820. edify-1.0.0/tests/atoms/base64.test.py +26 -0
  821. edify-1.0.0/tests/atoms/base64url.test.py +26 -0
  822. edify-1.0.0/tests/atoms/bic.test.py +26 -0
  823. edify-1.0.0/tests/atoms/binnum.test.py +26 -0
  824. edify-1.0.0/tests/atoms/boolean.test.py +26 -0
  825. edify-1.0.0/tests/atoms/braces.test.py +26 -0
  826. edify-1.0.0/tests/atoms/brackets.test.py +26 -0
  827. edify-1.0.0/tests/atoms/cidr.test.py +26 -0
  828. edify-1.0.0/tests/atoms/clock.test.py +26 -0
  829. edify-1.0.0/tests/atoms/clock12.test.py +26 -0
  830. edify-1.0.0/tests/atoms/creditcard.test.py +26 -0
  831. edify-1.0.0/tests/atoms/currency.test.py +26 -0
  832. edify-1.0.0/tests/atoms/day.test.py +26 -0
  833. edify-1.0.0/tests/atoms/decimal.test.py +26 -0
  834. edify-1.0.0/tests/atoms/duration.test.py +26 -0
  835. edify-1.0.0/tests/atoms/email.test.py +26 -0
  836. edify-1.0.0/tests/atoms/epoch.test.py +26 -0
  837. edify-1.0.0/tests/atoms/extension.test.py +26 -0
  838. edify-1.0.0/tests/atoms/filename.test.py +26 -0
  839. edify-1.0.0/tests/atoms/filepath.test.py +26 -0
  840. edify-1.0.0/tests/atoms/floatnum.test.py +26 -0
  841. edify-1.0.0/tests/atoms/guid.test.py +26 -0
  842. edify-1.0.0/tests/atoms/hexcolor.test.py +26 -0
  843. edify-1.0.0/tests/atoms/hexnum.test.py +26 -0
  844. edify-1.0.0/tests/atoms/hexstring.test.py +26 -0
  845. edify-1.0.0/tests/atoms/hostname.test.py +26 -0
  846. edify-1.0.0/tests/atoms/httpmethod.test.py +26 -0
  847. edify-1.0.0/tests/atoms/httpstatus.test.py +26 -0
  848. edify-1.0.0/tests/atoms/iban.test.py +26 -0
  849. edify-1.0.0/tests/atoms/integer.test.py +26 -0
  850. edify-1.0.0/tests/atoms/ipv4.test.py +26 -0
  851. edify-1.0.0/tests/atoms/ipv6.test.py +26 -0
  852. edify-1.0.0/tests/atoms/isodate.test.py +26 -0
  853. edify-1.0.0/tests/atoms/isodatetime.test.py +26 -0
  854. edify-1.0.0/tests/atoms/label.test.py +26 -0
  855. edify-1.0.0/tests/atoms/letter.test.py +26 -0
  856. edify-1.0.0/tests/atoms/line.test.py +26 -0
  857. edify-1.0.0/tests/atoms/localpart.test.py +26 -0
  858. edify-1.0.0/tests/atoms/lower.test.py +26 -0
  859. edify-1.0.0/tests/atoms/mac.test.py +26 -0
  860. edify-1.0.0/tests/atoms/md5.test.py +26 -0
  861. edify-1.0.0/tests/atoms/mimetype.test.py +26 -0
  862. edify-1.0.0/tests/atoms/money.test.py +26 -0
  863. edify-1.0.0/tests/atoms/month.test.py +26 -0
  864. edify-1.0.0/tests/atoms/natural.test.py +26 -0
  865. edify-1.0.0/tests/atoms/nibble.test.py +26 -0
  866. edify-1.0.0/tests/atoms/objectid.test.py +26 -0
  867. edify-1.0.0/tests/atoms/octet.test.py +26 -0
  868. edify-1.0.0/tests/atoms/octnum.test.py +26 -0
  869. edify-1.0.0/tests/atoms/oid.test.py +26 -0
  870. edify-1.0.0/tests/atoms/parens.test.py +26 -0
  871. edify-1.0.0/tests/atoms/percent.test.py +26 -0
  872. edify-1.0.0/tests/atoms/port.test.py +26 -0
  873. edify-1.0.0/tests/atoms/printable.test.py +26 -0
  874. edify-1.0.0/tests/atoms/protocol.test.py +26 -0
  875. edify-1.0.0/tests/atoms/quoted.test.py +26 -0
  876. edify-1.0.0/tests/atoms/ratio.test.py +26 -0
  877. edify-1.0.0/tests/atoms/rgbcolor.test.py +26 -0
  878. edify-1.0.0/tests/atoms/scheme.test.py +26 -0
  879. edify-1.0.0/tests/atoms/scientific.test.py +26 -0
  880. edify-1.0.0/tests/atoms/semver.test.py +26 -0
  881. edify-1.0.0/tests/atoms/sha256.test.py +26 -0
  882. edify-1.0.0/tests/atoms/signed.test.py +26 -0
  883. edify-1.0.0/tests/atoms/slug.test.py +26 -0
  884. edify-1.0.0/tests/atoms/space.test.py +26 -0
  885. edify-1.0.0/tests/atoms/timezone.test.py +26 -0
  886. edify-1.0.0/tests/atoms/tld.test.py +26 -0
  887. edify-1.0.0/tests/atoms/truefalse.test.py +26 -0
  888. edify-1.0.0/tests/atoms/ulid.test.py +26 -0
  889. edify-1.0.0/tests/atoms/unsigned.test.py +26 -0
  890. edify-1.0.0/tests/atoms/upper.test.py +26 -0
  891. edify-1.0.0/tests/atoms/uri.test.py +26 -0
  892. edify-1.0.0/tests/atoms/url.test.py +26 -0
  893. edify-1.0.0/tests/atoms/username.test.py +26 -0
  894. edify-1.0.0/tests/atoms/uuid.test.py +26 -0
  895. edify-1.0.0/tests/atoms/weekday.test.py +26 -0
  896. edify-1.0.0/tests/atoms/word.test.py +26 -0
  897. edify-1.0.0/tests/atoms/year.test.py +26 -0
  898. edify-1.0.0/tests/atoms/yesno.test.py +26 -0
  899. edify-1.0.0/tests/bench/__init__.py +0 -0
  900. edify-1.0.0/tests/bench/cases.py +76 -0
  901. edify-1.0.0/tests/bench/compile.py +20 -0
  902. edify-1.0.0/tests/bench/match.py +25 -0
  903. edify-1.0.0/tests/builder/alternation.test.py +13 -0
  904. edify-1.0.0/tests/builder/builder.test.py +579 -0
  905. edify-1.0.0/tests/builder/cache.test.py +120 -0
  906. edify-1.0.0/tests/builder/conflict.test.py +20 -0
  907. edify-1.0.0/tests/builder/diagnose.test.py +76 -0
  908. edify-1.0.0/tests/builder/engine.test.py +55 -0
  909. edify-1.0.0/tests/builder/equality.test.py +143 -0
  910. edify-1.0.0/tests/builder/flags.test.py +129 -0
  911. edify-1.0.0/tests/builder/fork.test.py +47 -0
  912. edify-1.0.0/tests/builder/inline.test.py +56 -0
  913. edify-1.0.0/tests/builder/labels.test.py +101 -0
  914. edify-1.0.0/tests/builder/lookbehind.test.py +57 -0
  915. edify-1.0.0/tests/builder/matcher.test.py +115 -0
  916. edify-1.0.0/tests/builder/merge.test.py +123 -0
  917. edify-1.0.0/tests/builder/operators.test.py +34 -0
  918. edify-1.0.0/tests/builder/ordering.test.py +27 -0
  919. edify-1.0.0/tests/builder/passthrough.test.py +27 -0
  920. edify-1.0.0/tests/builder/properties.test.py +247 -0
  921. edify-1.0.0/tests/builder/ranges.test.py +55 -0
  922. edify-1.0.0/tests/builder/repr.test.py +31 -0
  923. edify-1.0.0/tests/builder/reverse.test.py +113 -0
  924. edify-1.0.0/tests/builder/testing.test.py +71 -0
  925. edify-1.0.0/tests/builder/timeout.test.py +85 -0
  926. edify-1.0.0/tests/builder/use.test.py +30 -0
  927. edify-1.0.0/tests/builder/validation.test.py +126 -0
  928. edify-1.0.0/tests/builder/varargs.test.py +66 -0
  929. edify-1.0.0/tests/compile/escape.test.py +115 -0
  930. edify-1.0.0/tests/compile/redos.test.py +88 -0
  931. edify-1.0.0/tests/conftest.py +49 -0
  932. edify-1.0.0/tests/discipline/anchors.test.py +66 -0
  933. edify-1.0.0/tests/discipline/coverage.test.py +47 -0
  934. edify-1.0.0/tests/discipline/deprecations.test.py +76 -0
  935. edify-1.0.0/tests/discipline/matcher.test.py +44 -0
  936. edify-1.0.0/tests/discipline/orphans.test.py +131 -0
  937. edify-1.0.0/tests/discipline/pragmas.test.py +49 -0
  938. edify-1.0.0/tests/discipline/suppressions.test.py +35 -0
  939. edify-1.0.0/tests/docs/playground.test.py +115 -0
  940. edify-1.0.0/tests/docs/snapshots.test.py +172 -0
  941. edify-1.0.0/tests/errors/context.test.py +31 -0
  942. edify-1.0.0/tests/errors/formatting.test.py +135 -0
  943. edify-1.0.0/tests/errors/frames.test.py +66 -0
  944. edify-1.0.0/tests/errors/generic.test.py +228 -0
  945. edify-1.0.0/tests/errors/quantifier.test.py +90 -0
  946. edify-1.0.0/tests/fixtures/fixtures.test.py +132 -0
  947. edify-1.0.0/tests/integrations/django.test.py +38 -0
  948. edify-1.0.0/tests/integrations/fastapi.test.py +43 -0
  949. edify-1.0.0/tests/integrations/pydantic.test.py +46 -0
  950. edify-1.0.0/tests/introspect/ascii.test.py +472 -0
  951. edify-1.0.0/tests/introspect/explain.test.py +756 -0
  952. edify-1.0.0/tests/introspect/graphviz.test.py +366 -0
  953. edify-1.0.0/tests/introspect/verbose.test.py +457 -0
  954. edify-1.0.0/tests/introspect/visualize.test.py +92 -0
  955. edify-1.0.0/tests/library/algebra.test.py +77 -0
  956. edify-1.0.0/tests/library/corpora/abnf.toml +11 -0
  957. edify-1.0.0/tests/library/corpora/age.toml +12 -0
  958. edify-1.0.0/tests/library/corpora/antlr.toml +9 -0
  959. edify-1.0.0/tests/library/corpora/apache.toml +11 -0
  960. edify-1.0.0/tests/library/corpora/ascii.toml +13 -0
  961. edify-1.0.0/tests/library/corpora/atom.toml +10 -0
  962. edify-1.0.0/tests/library/corpora/avro.toml +11 -0
  963. edify-1.0.0/tests/library/corpora/bnf.toml +11 -0
  964. edify-1.0.0/tests/library/corpora/captcha.toml +11 -0
  965. edify-1.0.0/tests/library/corpora/certificate.toml +10 -0
  966. edify-1.0.0/tests/library/corpora/csr.toml +10 -0
  967. edify-1.0.0/tests/library/corpora/csv.toml +16 -0
  968. edify-1.0.0/tests/library/corpora/date.toml +22 -0
  969. edify-1.0.0/tests/library/corpora/der.toml +10 -0
  970. edify-1.0.0/tests/library/corpora/docx.toml +10 -0
  971. edify-1.0.0/tests/library/corpora/ebnf.toml +11 -0
  972. edify-1.0.0/tests/library/corpora/email.toml +25 -0
  973. edify-1.0.0/tests/library/corpora/email_rfc_5322.toml +20 -0
  974. edify-1.0.0/tests/library/corpora/encoding.toml +17 -0
  975. edify-1.0.0/tests/library/corpora/epub.toml +10 -0
  976. edify-1.0.0/tests/library/corpora/graphql.toml +16 -0
  977. edify-1.0.0/tests/library/corpora/guid.toml +16 -0
  978. edify-1.0.0/tests/library/corpora/hal.toml +11 -0
  979. edify-1.0.0/tests/library/corpora/hdf5.toml +10 -0
  980. edify-1.0.0/tests/library/corpora/hostname.toml +15 -0
  981. edify-1.0.0/tests/library/corpora/htaccess.toml +11 -0
  982. edify-1.0.0/tests/library/corpora/html.toml +16 -0
  983. edify-1.0.0/tests/library/corpora/humans.toml +12 -0
  984. edify-1.0.0/tests/library/corpora/ini.toml +15 -0
  985. edify-1.0.0/tests/library/corpora/ipv4.toml +27 -0
  986. edify-1.0.0/tests/library/corpora/ipv6.toml +24 -0
  987. edify-1.0.0/tests/library/corpora/isbn.toml +13 -0
  988. edify-1.0.0/tests/library/corpora/iso_date.toml +21 -0
  989. edify-1.0.0/tests/library/corpora/json.toml +29 -0
  990. edify-1.0.0/tests/library/corpora/jsonapi.toml +12 -0
  991. edify-1.0.0/tests/library/corpora/keyring.toml +10 -0
  992. edify-1.0.0/tests/library/corpora/mac.toml +21 -0
  993. edify-1.0.0/tests/library/corpora/manifest.toml +10 -0
  994. edify-1.0.0/tests/library/corpora/mobi.toml +10 -0
  995. edify-1.0.0/tests/library/corpora/msgpack.toml +12 -0
  996. edify-1.0.0/tests/library/corpora/nginx.toml +12 -0
  997. edify-1.0.0/tests/library/corpora/oauth.toml +14 -0
  998. edify-1.0.0/tests/library/corpora/odt.toml +10 -0
  999. edify-1.0.0/tests/library/corpora/openapi.toml +12 -0
  1000. edify-1.0.0/tests/library/corpora/openid.toml +12 -0
  1001. edify-1.0.0/tests/library/corpora/orc.toml +11 -0
  1002. edify-1.0.0/tests/library/corpora/parquet.toml +11 -0
  1003. edify-1.0.0/tests/library/corpora/password.toml +21 -0
  1004. edify-1.0.0/tests/library/corpora/pdf.toml +13 -0
  1005. edify-1.0.0/tests/library/corpora/peg.toml +11 -0
  1006. edify-1.0.0/tests/library/corpora/pem.toml +12 -0
  1007. edify-1.0.0/tests/library/corpora/pest.toml +12 -0
  1008. edify-1.0.0/tests/library/corpora/pgp.toml +11 -0
  1009. edify-1.0.0/tests/library/corpora/phone.toml +36 -0
  1010. edify-1.0.0/tests/library/corpora/port.toml +17 -0
  1011. edify-1.0.0/tests/library/corpora/postal.toml +35 -0
  1012. edify-1.0.0/tests/library/corpora/pptx.toml +10 -0
  1013. edify-1.0.0/tests/library/corpora/printable.toml +14 -0
  1014. edify-1.0.0/tests/library/corpora/protobuf.toml +15 -0
  1015. edify-1.0.0/tests/library/corpora/readme.toml +16 -0
  1016. edify-1.0.0/tests/library/corpora/robots.toml +12 -0
  1017. edify-1.0.0/tests/library/corpora/rss.toml +11 -0
  1018. edify-1.0.0/tests/library/corpora/rtf.toml +10 -0
  1019. edify-1.0.0/tests/library/corpora/saml.toml +10 -0
  1020. edify-1.0.0/tests/library/corpora/semver.toml +18 -0
  1021. edify-1.0.0/tests/library/corpora/sitemap.toml +10 -0
  1022. edify-1.0.0/tests/library/corpora/slug.toml +17 -0
  1023. edify-1.0.0/tests/library/corpora/soap.toml +10 -0
  1024. edify-1.0.0/tests/library/corpora/ssh.toml +14 -0
  1025. edify-1.0.0/tests/library/corpora/ssn.toml +23 -0
  1026. edify-1.0.0/tests/library/corpora/svg.toml +13 -0
  1027. edify-1.0.0/tests/library/corpora/swagger.toml +12 -0
  1028. edify-1.0.0/tests/library/corpora/tex.toml +10 -0
  1029. edify-1.0.0/tests/library/corpora/toml.toml +15 -0
  1030. edify-1.0.0/tests/library/corpora/tsv.toml +13 -0
  1031. edify-1.0.0/tests/library/corpora/unicode.toml +13 -0
  1032. edify-1.0.0/tests/library/corpora/url.toml +23 -0
  1033. edify-1.0.0/tests/library/corpora/uuid.toml +22 -0
  1034. edify-1.0.0/tests/library/corpora/vin.toml +11 -0
  1035. edify-1.0.0/tests/library/corpora/webhook.toml +12 -0
  1036. edify-1.0.0/tests/library/corpora/x509.toml +9 -0
  1037. edify-1.0.0/tests/library/corpora/xlsx.toml +10 -0
  1038. edify-1.0.0/tests/library/corpora/xml.toml +17 -0
  1039. edify-1.0.0/tests/library/corpora/yaml.toml +18 -0
  1040. edify-1.0.0/tests/library/corpora/zip_code.toml +21 -0
  1041. edify-1.0.0/tests/library/guid.test.py +11 -0
  1042. edify-1.0.0/tests/library/hardening.test.py +60 -0
  1043. edify-1.0.0/tests/library/invariants.test.py +47 -0
  1044. edify-1.0.0/tests/library/ip.test.py +13 -0
  1045. edify-1.0.0/tests/library/mac.test.py +11 -0
  1046. edify-1.0.0/tests/library/media/regex.test.py +9 -0
  1047. edify-1.0.0/tests/library/password.test.py +15 -0
  1048. edify-1.0.0/tests/library/phone.test.py +13 -0
  1049. edify-1.0.0/tests/library/postal.test.py +9 -0
  1050. edify-1.0.0/tests/library/snapshots.test.py +41 -0
  1051. edify-1.0.0/tests/library/ssn.test.py +11 -0
  1052. edify-1.0.0/tests/library/url.test.py +13 -0
  1053. edify-1.0.0/tests/license.test.py +16 -0
  1054. edify-1.0.0/tests/package.test.py +17 -0
  1055. edify-1.0.0/tests/pattern/anchors.test.py +27 -0
  1056. edify-1.0.0/tests/pattern/boundaries.test.py +27 -0
  1057. edify-1.0.0/tests/pattern/call.test.py +32 -0
  1058. edify-1.0.0/tests/pattern/classes.test.py +88 -0
  1059. edify-1.0.0/tests/pattern/composition.test.py +33 -0
  1060. edify-1.0.0/tests/pattern/factories/assertions.test.py +30 -0
  1061. edify-1.0.0/tests/pattern/factories/groups.test.py +71 -0
  1062. edify-1.0.0/tests/pattern/factories/quantifiers.test.py +108 -0
  1063. edify-1.0.0/tests/pattern/factories/values.test.py +61 -0
  1064. edify-1.0.0/tests/pattern/operators.test.py +54 -0
  1065. edify-1.0.0/tests/property/emitted.test.py +51 -0
  1066. edify-1.0.0/tests/property/parsing.test.py +78 -0
  1067. edify-1.0.0/tests/property/quantifiers.test.py +59 -0
  1068. edify-1.0.0/tests/property/roundtrip.test.py +68 -0
  1069. edify-1.0.0/tests/result/match.test.py +206 -0
  1070. edify-1.0.0/tests/result/regex.test.py +126 -0
  1071. edify-1.0.0/tests/serialize/errors.test.py +73 -0
  1072. edify-1.0.0/tests/serialize/roundtrip.test.py +244 -0
  1073. edify-1.0.0/tests/snapshots/docs/api/atoms/0010.regex +2 -0
  1074. edify-1.0.0/tests/snapshots/docs/api/atoms/0041.regex +0 -0
  1075. edify-1.0.0/tests/snapshots/docs/api/atoms/0056.regex +0 -0
  1076. edify-1.0.0/tests/snapshots/docs/api/atoms/0091.regex +1 -0
  1077. edify-1.0.0/tests/snapshots/docs/api/atoms/0106.regex +1 -0
  1078. edify-1.0.0/tests/snapshots/docs/api/atoms/0121.regex +1 -0
  1079. edify-1.0.0/tests/snapshots/docs/api/atoms/0149.regex +1 -0
  1080. edify-1.0.0/tests/snapshots/docs/api/atoms/0185.regex +1 -0
  1081. edify-1.0.0/tests/snapshots/docs/api/atoms/0227.regex +1 -0
  1082. edify-1.0.0/tests/snapshots/docs/api/atoms/0252.regex +1 -0
  1083. edify-1.0.0/tests/snapshots/docs/api/atoms/0266.regex +1 -0
  1084. edify-1.0.0/tests/snapshots/docs/api/atoms/0286.regex +0 -0
  1085. edify-1.0.0/tests/snapshots/docs/api/atoms/0308.regex +1 -0
  1086. edify-1.0.0/tests/snapshots/docs/api/atoms/0332.regex +1 -0
  1087. edify-1.0.0/tests/snapshots/docs/api/atoms/0358.regex +0 -0
  1088. edify-1.0.0/tests/snapshots/docs/api/atoms/0372.regex +0 -0
  1089. edify-1.0.0/tests/snapshots/docs/api/atoms/0401.regex +0 -0
  1090. edify-1.0.0/tests/snapshots/docs/api/atoms/0423.regex +0 -0
  1091. edify-1.0.0/tests/snapshots/docs/api/atoms/0454.regex +1 -0
  1092. edify-1.0.0/tests/snapshots/docs/api/atoms/0468.regex +0 -0
  1093. edify-1.0.0/tests/snapshots/docs/api/atoms/0482.regex +1 -0
  1094. edify-1.0.0/tests/snapshots/docs/api/atoms/0496.regex +1 -0
  1095. edify-1.0.0/tests/snapshots/docs/api/atoms/0530.regex +2 -0
  1096. edify-1.0.0/tests/snapshots/docs/api/atoms/0545.regex +0 -0
  1097. edify-1.0.0/tests/snapshots/docs/api/atoms/0559.regex +1 -0
  1098. edify-1.0.0/tests/snapshots/docs/api/atoms/0578.regex +0 -0
  1099. edify-1.0.0/tests/snapshots/docs/api/atoms/0592.regex +1 -0
  1100. edify-1.0.0/tests/snapshots/docs/api/atoms/0606.regex +1 -0
  1101. edify-1.0.0/tests/snapshots/docs/api/atoms/0631.regex +0 -0
  1102. edify-1.0.0/tests/snapshots/docs/api/atoms/0645.regex +0 -0
  1103. edify-1.0.0/tests/snapshots/docs/api/atoms/0676.regex +1 -0
  1104. edify-1.0.0/tests/snapshots/docs/api/atoms/0690.regex +1 -0
  1105. edify-1.0.0/tests/snapshots/docs/api/atoms/0710.regex +1 -0
  1106. edify-1.0.0/tests/snapshots/docs/api/atoms/0724.regex +0 -0
  1107. edify-1.0.0/tests/snapshots/docs/api/atoms/0738.regex +1 -0
  1108. edify-1.0.0/tests/snapshots/docs/api/atoms/0773.regex +1 -0
  1109. edify-1.0.0/tests/snapshots/docs/api/atoms/0787.regex +2 -0
  1110. edify-1.0.0/tests/snapshots/docs/api/atoms/0801.regex +1 -0
  1111. edify-1.0.0/tests/snapshots/docs/api/atoms/0815.regex +0 -0
  1112. edify-1.0.0/tests/snapshots/docs/api/atoms/0829.regex +1 -0
  1113. edify-1.0.0/tests/snapshots/docs/api/atoms/0843.regex +0 -0
  1114. edify-1.0.0/tests/snapshots/docs/api/atoms/0873.regex +1 -0
  1115. edify-1.0.0/tests/snapshots/docs/api/atoms/0887.regex +1 -0
  1116. edify-1.0.0/tests/snapshots/docs/api/atoms/0908.regex +1 -0
  1117. edify-1.0.0/tests/snapshots/docs/api/atoms/0922.regex +0 -0
  1118. edify-1.0.0/tests/snapshots/docs/api/atoms/0936.regex +1 -0
  1119. edify-1.0.0/tests/snapshots/docs/api/atoms/0967.regex +1 -0
  1120. edify-1.0.0/tests/snapshots/docs/api/atoms/0983.regex +1 -0
  1121. edify-1.0.0/tests/snapshots/docs/api/atoms/1008.regex +1 -0
  1122. edify-1.0.0/tests/snapshots/docs/api/atoms/1034.regex +1 -0
  1123. edify-1.0.0/tests/snapshots/docs/api/atoms/1058.regex +1 -0
  1124. edify-1.0.0/tests/snapshots/docs/api/atoms/1089.regex +2 -0
  1125. edify-1.0.0/tests/snapshots/docs/api/atoms/1104.regex +2 -0
  1126. edify-1.0.0/tests/snapshots/docs/api/atoms/1119.regex +2 -0
  1127. edify-1.0.0/tests/snapshots/docs/api/atoms/1134.regex +1 -0
  1128. edify-1.0.0/tests/snapshots/docs/api/atoms/1148.regex +2 -0
  1129. edify-1.0.0/tests/snapshots/docs/api/atoms/1163.regex +1 -0
  1130. edify-1.0.0/tests/snapshots/docs/api/atoms/1189.regex +1 -0
  1131. edify-1.0.0/tests/snapshots/docs/api/atoms/1228.regex +1 -0
  1132. edify-1.0.0/tests/snapshots/docs/api/atoms/1257.regex +1 -0
  1133. edify-1.0.0/tests/snapshots/docs/api/atoms/1290.regex +1 -0
  1134. edify-1.0.0/tests/snapshots/docs/api/atoms/1308.regex +0 -0
  1135. edify-1.0.0/tests/snapshots/docs/api/atoms/1361.regex +0 -0
  1136. edify-1.0.0/tests/snapshots/docs/api/atoms/1375.regex +1 -0
  1137. edify-1.0.0/tests/snapshots/docs/api/atoms/1389.regex +1 -0
  1138. edify-1.0.0/tests/snapshots/docs/api/atoms/1440.regex +1 -0
  1139. edify-1.0.0/tests/snapshots/docs/api/atoms/1457.regex +0 -0
  1140. edify-1.0.0/tests/snapshots/docs/api/atoms/1474.regex +1 -0
  1141. edify-1.0.0/tests/snapshots/docs/api/atoms/1503.regex +0 -0
  1142. edify-1.0.0/tests/snapshots/docs/api/atoms/1523.regex +0 -0
  1143. edify-1.0.0/tests/snapshots/docs/api/atoms/1537.regex +0 -0
  1144. edify-1.0.0/tests/snapshots/docs/api/atoms/1551.regex +0 -0
  1145. edify-1.0.0/tests/snapshots/docs/api/atoms/1587.regex +2 -0
  1146. edify-1.0.0/tests/snapshots/docs/api/atoms/1615.regex +1 -0
  1147. edify-1.0.0/tests/snapshots/docs/api/atoms/1639.regex +1 -0
  1148. edify-1.0.0/tests/snapshots/docs/api/atoms/1653.regex +0 -0
  1149. edify-1.0.0/tests/snapshots/docs/api/atoms/1684.regex +1 -0
  1150. edify-1.0.0/tests/snapshots/docs/api/atoms/1723.regex +0 -0
  1151. edify-1.0.0/tests/snapshots/docs/api/atoms/1756.regex +1 -0
  1152. edify-1.0.0/tests/snapshots/docs/api/atoms/1770.regex +0 -0
  1153. edify-1.0.0/tests/snapshots/docs/api/atoms/1795.regex +0 -0
  1154. edify-1.0.0/tests/snapshots/docs/api/atoms/1823.regex +1 -0
  1155. edify-1.0.0/tests/snapshots/docs/api/atoms/1837.regex +1 -0
  1156. edify-1.0.0/tests/snapshots/docs/api/atoms/1851.regex +1 -0
  1157. edify-1.0.0/tests/snapshots/docs/api/builder/index/0015.regex +0 -0
  1158. edify-1.0.0/tests/snapshots/docs/api/constants/0009.regex +0 -0
  1159. edify-1.0.0/tests/snapshots/docs/api/errors/0010.regex +0 -0
  1160. edify-1.0.0/tests/snapshots/docs/api/library/address/0022.regex +0 -0
  1161. edify-1.0.0/tests/snapshots/docs/api/library/address/0084.regex +0 -0
  1162. edify-1.0.0/tests/snapshots/docs/api/library/address/0122.regex +0 -0
  1163. edify-1.0.0/tests/snapshots/docs/api/library/address/0178.regex +2 -0
  1164. edify-1.0.0/tests/snapshots/docs/api/library/address/0386.regex +2 -0
  1165. edify-1.0.0/tests/snapshots/docs/api/library/address/0594.regex +2 -0
  1166. edify-1.0.0/tests/snapshots/docs/api/library/address/0794.regex +0 -0
  1167. edify-1.0.0/tests/snapshots/docs/api/library/address/0861.regex +0 -0
  1168. edify-1.0.0/tests/snapshots/docs/api/library/address/0886.regex +1 -0
  1169. edify-1.0.0/tests/snapshots/docs/api/library/address/0931.regex +1 -0
  1170. edify-1.0.0/tests/snapshots/docs/api/library/address/1003.regex +0 -0
  1171. edify-1.0.0/tests/snapshots/docs/api/library/address/1041.regex +0 -0
  1172. edify-1.0.0/tests/snapshots/docs/api/library/address/1083.regex +0 -0
  1173. edify-1.0.0/tests/snapshots/docs/api/library/address/1109.regex +0 -0
  1174. edify-1.0.0/tests/snapshots/docs/api/library/address/1155.regex +0 -0
  1175. edify-1.0.0/tests/snapshots/docs/api/library/address/1242.regex +0 -0
  1176. edify-1.0.0/tests/snapshots/docs/api/library/api/0022.regex +0 -0
  1177. edify-1.0.0/tests/snapshots/docs/api/library/api/0056.regex +0 -0
  1178. edify-1.0.0/tests/snapshots/docs/api/library/api/0126.regex +0 -0
  1179. edify-1.0.0/tests/snapshots/docs/api/library/api/0167.regex +0 -0
  1180. edify-1.0.0/tests/snapshots/docs/api/library/api/0209.regex +0 -0
  1181. edify-1.0.0/tests/snapshots/docs/api/library/api/0248.regex +0 -0
  1182. edify-1.0.0/tests/snapshots/docs/api/library/api/0321.regex +0 -0
  1183. edify-1.0.0/tests/snapshots/docs/api/library/api/0368.regex +0 -0
  1184. edify-1.0.0/tests/snapshots/docs/api/library/api/0403.regex +0 -0
  1185. edify-1.0.0/tests/snapshots/docs/api/library/api/0454.regex +0 -0
  1186. edify-1.0.0/tests/snapshots/docs/api/library/api/0493.regex +0 -0
  1187. edify-1.0.0/tests/snapshots/docs/api/library/api/0553.regex +0 -0
  1188. edify-1.0.0/tests/snapshots/docs/api/library/auth/0021.regex +0 -0
  1189. edify-1.0.0/tests/snapshots/docs/api/library/auth/0048.regex +0 -0
  1190. edify-1.0.0/tests/snapshots/docs/api/library/auth/0077.regex +0 -0
  1191. edify-1.0.0/tests/snapshots/docs/api/library/auth/0104.regex +0 -0
  1192. edify-1.0.0/tests/snapshots/docs/api/library/auth/0131.regex +0 -0
  1193. edify-1.0.0/tests/snapshots/docs/api/library/auth/0158.regex +0 -0
  1194. edify-1.0.0/tests/snapshots/docs/api/library/auth/0201.regex +0 -0
  1195. edify-1.0.0/tests/snapshots/docs/api/library/auth/0218.regex +0 -0
  1196. edify-1.0.0/tests/snapshots/docs/api/library/auth/0247.regex +0 -0
  1197. edify-1.0.0/tests/snapshots/docs/api/library/auth/0274.regex +0 -0
  1198. edify-1.0.0/tests/snapshots/docs/api/library/auth/0320.regex +0 -0
  1199. edify-1.0.0/tests/snapshots/docs/api/library/auth/0405.regex +0 -0
  1200. edify-1.0.0/tests/snapshots/docs/api/library/auth/0422.regex +0 -0
  1201. edify-1.0.0/tests/snapshots/docs/api/library/auth/0449.regex +0 -0
  1202. edify-1.0.0/tests/snapshots/docs/api/library/auth/0476.regex +0 -0
  1203. edify-1.0.0/tests/snapshots/docs/api/library/auth/0504.regex +0 -0
  1204. edify-1.0.0/tests/snapshots/docs/api/library/auth/0533.regex +0 -0
  1205. edify-1.0.0/tests/snapshots/docs/api/library/auth/0560.regex +0 -0
  1206. edify-1.0.0/tests/snapshots/docs/api/library/auth/0587.regex +0 -0
  1207. edify-1.0.0/tests/snapshots/docs/api/library/color/0021.regex +0 -0
  1208. edify-1.0.0/tests/snapshots/docs/api/library/color/0157.regex +0 -0
  1209. edify-1.0.0/tests/snapshots/docs/api/library/color/0193.regex +0 -0
  1210. edify-1.0.0/tests/snapshots/docs/api/library/color/0227.regex +0 -0
  1211. edify-1.0.0/tests/snapshots/docs/api/library/color/0281.regex +0 -0
  1212. edify-1.0.0/tests/snapshots/docs/api/library/contact/0022.regex +0 -0
  1213. edify-1.0.0/tests/snapshots/docs/api/library/contact/0066.regex +0 -0
  1214. edify-1.0.0/tests/snapshots/docs/api/library/contact/0290.regex +0 -0
  1215. edify-1.0.0/tests/snapshots/docs/api/library/contact/0502.regex +0 -0
  1216. edify-1.0.0/tests/snapshots/docs/api/library/contact/0562.regex +0 -0
  1217. edify-1.0.0/tests/snapshots/docs/api/library/contact/0590.regex +0 -0
  1218. edify-1.0.0/tests/snapshots/docs/api/library/contact/0626.regex +0 -0
  1219. edify-1.0.0/tests/snapshots/docs/api/library/contact/0676.regex +0 -0
  1220. edify-1.0.0/tests/snapshots/docs/api/library/data/0022.regex +0 -0
  1221. edify-1.0.0/tests/snapshots/docs/api/library/data/0041.regex +0 -0
  1222. edify-1.0.0/tests/snapshots/docs/api/library/data/0081.regex +0 -0
  1223. edify-1.0.0/tests/snapshots/docs/api/library/data/0106.regex +0 -0
  1224. edify-1.0.0/tests/snapshots/docs/api/library/data/0144.regex +0 -0
  1225. edify-1.0.0/tests/snapshots/docs/api/library/data/0193.regex +0 -0
  1226. edify-1.0.0/tests/snapshots/docs/api/library/data/0254.regex +0 -0
  1227. edify-1.0.0/tests/snapshots/docs/api/library/data/0286.regex +0 -0
  1228. edify-1.0.0/tests/snapshots/docs/api/library/data/0302.regex +0 -0
  1229. edify-1.0.0/tests/snapshots/docs/api/library/data/0322.regex +0 -0
  1230. edify-1.0.0/tests/snapshots/docs/api/library/data/0381.regex +0 -0
  1231. edify-1.0.0/tests/snapshots/docs/api/library/data/0442.regex +0 -0
  1232. edify-1.0.0/tests/snapshots/docs/api/library/data/0476.regex +0 -0
  1233. edify-1.0.0/tests/snapshots/docs/api/library/data/0522.regex +0 -0
  1234. edify-1.0.0/tests/snapshots/docs/api/library/document/0022.regex +0 -0
  1235. edify-1.0.0/tests/snapshots/docs/api/library/document/0050.regex +0 -0
  1236. edify-1.0.0/tests/snapshots/docs/api/library/document/0078.regex +0 -0
  1237. edify-1.0.0/tests/snapshots/docs/api/library/document/0105.regex +0 -0
  1238. edify-1.0.0/tests/snapshots/docs/api/library/document/0132.regex +0 -0
  1239. edify-1.0.0/tests/snapshots/docs/api/library/document/0160.regex +0 -0
  1240. edify-1.0.0/tests/snapshots/docs/api/library/document/0188.regex +0 -0
  1241. edify-1.0.0/tests/snapshots/docs/api/library/document/0222.regex +0 -0
  1242. edify-1.0.0/tests/snapshots/docs/api/library/document/0249.regex +0 -0
  1243. edify-1.0.0/tests/snapshots/docs/api/library/document/0285.regex +0 -0
  1244. edify-1.0.0/tests/snapshots/docs/api/library/document/0321.regex +0 -0
  1245. edify-1.0.0/tests/snapshots/docs/api/library/financial/0022.regex +0 -0
  1246. edify-1.0.0/tests/snapshots/docs/api/library/financial/0057.regex +0 -0
  1247. edify-1.0.0/tests/snapshots/docs/api/library/financial/0083.regex +0 -0
  1248. edify-1.0.0/tests/snapshots/docs/api/library/financial/0099.regex +0 -0
  1249. edify-1.0.0/tests/snapshots/docs/api/library/financial/0115.regex +0 -0
  1250. edify-1.0.0/tests/snapshots/docs/api/library/financial/0146.regex +0 -0
  1251. edify-1.0.0/tests/snapshots/docs/api/library/financial/0163.regex +0 -0
  1252. edify-1.0.0/tests/snapshots/docs/api/library/geo/0021.regex +0 -0
  1253. edify-1.0.0/tests/snapshots/docs/api/library/geo/0055.regex +0 -0
  1254. edify-1.0.0/tests/snapshots/docs/api/library/geo/0096.regex +0 -0
  1255. edify-1.0.0/tests/snapshots/docs/api/library/geo/0168.regex +0 -0
  1256. edify-1.0.0/tests/snapshots/docs/api/library/geo/0193.regex +0 -0
  1257. edify-1.0.0/tests/snapshots/docs/api/library/geo/0234.regex +0 -0
  1258. edify-1.0.0/tests/snapshots/docs/api/library/geo/0265.regex +0 -0
  1259. edify-1.0.0/tests/snapshots/docs/api/library/geo/0301.regex +0 -0
  1260. edify-1.0.0/tests/snapshots/docs/api/library/grammar/0022.regex +0 -0
  1261. edify-1.0.0/tests/snapshots/docs/api/library/grammar/0057.regex +0 -0
  1262. edify-1.0.0/tests/snapshots/docs/api/library/grammar/0093.regex +0 -0
  1263. edify-1.0.0/tests/snapshots/docs/api/library/grammar/0125.regex +0 -0
  1264. edify-1.0.0/tests/snapshots/docs/api/library/grammar/0158.regex +0 -0
  1265. edify-1.0.0/tests/snapshots/docs/api/library/grammar/0190.regex +0 -0
  1266. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0022.regex +0 -0
  1267. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0068.regex +0 -0
  1268. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0095.regex +0 -0
  1269. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0130.regex +0 -0
  1270. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0156.regex +0 -0
  1271. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0185.regex +0 -0
  1272. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0212.regex +0 -0
  1273. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0271.regex +0 -0
  1274. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0288.regex +0 -0
  1275. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0320.regex +0 -0
  1276. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0336.regex +0 -0
  1277. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0352.regex +0 -0
  1278. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0369.regex +0 -0
  1279. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0386.regex +0 -0
  1280. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0417.regex +0 -0
  1281. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0456.regex +0 -0
  1282. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0493.regex +0 -0
  1283. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0529.regex +0 -0
  1284. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0554.regex +0 -0
  1285. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0572.regex +0 -0
  1286. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0608.regex +0 -0
  1287. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0641.regex +0 -0
  1288. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0680.regex +0 -0
  1289. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0727.regex +0 -0
  1290. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0755.regex +0 -0
  1291. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0807.regex +0 -0
  1292. edify-1.0.0/tests/snapshots/docs/api/library/index/0008.regex +0 -0
  1293. edify-1.0.0/tests/snapshots/docs/api/library/media/0021.regex +0 -0
  1294. edify-1.0.0/tests/snapshots/docs/api/library/media/0052.regex +0 -0
  1295. edify-1.0.0/tests/snapshots/docs/api/library/media/0083.regex +0 -0
  1296. edify-1.0.0/tests/snapshots/docs/api/library/media/0128.regex +0 -0
  1297. edify-1.0.0/tests/snapshots/docs/api/library/media/0144.regex +0 -0
  1298. edify-1.0.0/tests/snapshots/docs/api/library/media/0195.regex +0 -0
  1299. edify-1.0.0/tests/snapshots/docs/api/library/media/0242.regex +0 -0
  1300. edify-1.0.0/tests/snapshots/docs/api/library/media/0272.regex +0 -0
  1301. edify-1.0.0/tests/snapshots/docs/api/library/media/0317.regex +0 -0
  1302. edify-1.0.0/tests/snapshots/docs/api/library/media/0364.regex +0 -0
  1303. edify-1.0.0/tests/snapshots/docs/api/library/media/0392.regex +0 -0
  1304. edify-1.0.0/tests/snapshots/docs/api/library/medical/0021.regex +0 -0
  1305. edify-1.0.0/tests/snapshots/docs/api/library/medical/0050.regex +0 -0
  1306. edify-1.0.0/tests/snapshots/docs/api/library/medical/0080.regex +0 -0
  1307. edify-1.0.0/tests/snapshots/docs/api/library/medical/0136.regex +0 -0
  1308. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0022.regex +0 -0
  1309. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0057.regex +0 -0
  1310. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0083.regex +0 -0
  1311. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0101.regex +0 -0
  1312. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0119.regex +0 -0
  1313. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0209.regex +0 -0
  1314. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0240.regex +0 -0
  1315. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0273.regex +0 -0
  1316. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0291.regex +0 -0
  1317. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0338.regex +0 -0
  1318. edify-1.0.0/tests/snapshots/docs/api/library/product/0021.regex +0 -0
  1319. edify-1.0.0/tests/snapshots/docs/api/library/product/0046.regex +0 -0
  1320. edify-1.0.0/tests/snapshots/docs/api/library/product/0074.regex +0 -0
  1321. edify-1.0.0/tests/snapshots/docs/api/library/publishing/0021.regex +0 -0
  1322. edify-1.0.0/tests/snapshots/docs/api/library/publishing/0072.regex +0 -0
  1323. edify-1.0.0/tests/snapshots/docs/api/library/publishing/0110.regex +0 -0
  1324. edify-1.0.0/tests/snapshots/docs/api/library/publishing/0155.regex +0 -0
  1325. edify-1.0.0/tests/snapshots/docs/api/library/publishing/0185.regex +0 -0
  1326. edify-1.0.0/tests/snapshots/docs/api/library/publishing/0201.regex +0 -0
  1327. edify-1.0.0/tests/snapshots/docs/api/library/security/0022.regex +0 -0
  1328. edify-1.0.0/tests/snapshots/docs/api/library/security/0053.regex +0 -0
  1329. edify-1.0.0/tests/snapshots/docs/api/library/security/0089.regex +0 -0
  1330. edify-1.0.0/tests/snapshots/docs/api/library/security/0125.regex +0 -0
  1331. edify-1.0.0/tests/snapshots/docs/api/library/security/0158.regex +0 -0
  1332. edify-1.0.0/tests/snapshots/docs/api/library/security/0195.regex +0 -0
  1333. edify-1.0.0/tests/snapshots/docs/api/library/security/0228.regex +0 -0
  1334. edify-1.0.0/tests/snapshots/docs/api/library/security/0264.regex +0 -0
  1335. edify-1.0.0/tests/snapshots/docs/api/library/security/0301.regex +0 -0
  1336. edify-1.0.0/tests/snapshots/docs/api/library/security/0333.regex +0 -0
  1337. edify-1.0.0/tests/snapshots/docs/api/library/security/0386.regex +0 -0
  1338. edify-1.0.0/tests/snapshots/docs/api/library/software/0021.regex +0 -0
  1339. edify-1.0.0/tests/snapshots/docs/api/library/software/0051.regex +0 -0
  1340. edify-1.0.0/tests/snapshots/docs/api/library/software/0104.regex +0 -0
  1341. edify-1.0.0/tests/snapshots/docs/api/library/software/0130.regex +0 -0
  1342. edify-1.0.0/tests/snapshots/docs/api/library/software/0198.regex +0 -0
  1343. edify-1.0.0/tests/snapshots/docs/api/library/software/0234.regex +0 -0
  1344. edify-1.0.0/tests/snapshots/docs/api/library/software/0333.regex +0 -0
  1345. edify-1.0.0/tests/snapshots/docs/api/library/software/0358.regex +0 -0
  1346. edify-1.0.0/tests/snapshots/docs/api/library/software/0457.regex +0 -0
  1347. edify-1.0.0/tests/snapshots/docs/api/library/software/0509.regex +0 -0
  1348. edify-1.0.0/tests/snapshots/docs/api/library/software/0556.regex +0 -0
  1349. edify-1.0.0/tests/snapshots/docs/api/library/software/0616.regex +0 -0
  1350. edify-1.0.0/tests/snapshots/docs/api/library/software/0715.regex +0 -0
  1351. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0022.regex +0 -0
  1352. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0090.regex +0 -0
  1353. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0121.regex +0 -0
  1354. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0208.regex +0 -0
  1355. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0268.regex +0 -0
  1356. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0285.regex +0 -0
  1357. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0403.regex +0 -0
  1358. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0432.regex +0 -0
  1359. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0464.regex +0 -0
  1360. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0525.regex +0 -0
  1361. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0543.regex +0 -0
  1362. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0588.regex +0 -0
  1363. edify-1.0.0/tests/snapshots/docs/api/library/text/0021.regex +0 -0
  1364. edify-1.0.0/tests/snapshots/docs/api/library/text/0037.regex +0 -0
  1365. edify-1.0.0/tests/snapshots/docs/api/library/text/0054.regex +0 -0
  1366. edify-1.0.0/tests/snapshots/docs/api/library/text/0071.regex +0 -0
  1367. edify-1.0.0/tests/snapshots/docs/api/library/text/0133.regex +0 -0
  1368. edify-1.0.0/tests/snapshots/docs/api/library/text/0158.regex +0 -0
  1369. edify-1.0.0/tests/snapshots/docs/api/library/text/0175.regex +0 -0
  1370. edify-1.0.0/tests/snapshots/docs/api/library/text/0207.regex +0 -0
  1371. edify-1.0.0/tests/snapshots/docs/api/library/text/0237.regex +0 -0
  1372. edify-1.0.0/tests/snapshots/docs/api/library/text/0272.regex +0 -0
  1373. edify-1.0.0/tests/snapshots/docs/api/library/text/0316.regex +0 -0
  1374. edify-1.0.0/tests/snapshots/docs/api/library/transport/0021.regex +0 -0
  1375. edify-1.0.0/tests/snapshots/docs/api/library/transport/0050.regex +0 -0
  1376. edify-1.0.0/tests/snapshots/docs/api/library/transport/0076.regex +0 -0
  1377. edify-1.0.0/tests/snapshots/docs/api/library/transport/0108.regex +0 -0
  1378. edify-1.0.0/tests/snapshots/docs/api/library/web/0022.regex +0 -0
  1379. edify-1.0.0/tests/snapshots/docs/api/library/web/0086.regex +0 -0
  1380. edify-1.0.0/tests/snapshots/docs/api/library/web/0111.regex +0 -0
  1381. edify-1.0.0/tests/snapshots/docs/api/library/web/0147.regex +0 -0
  1382. edify-1.0.0/tests/snapshots/docs/api/library/web/0199.regex +0 -0
  1383. edify-1.0.0/tests/snapshots/docs/api/library/web/0269.regex +0 -0
  1384. edify-1.0.0/tests/snapshots/docs/api/library/web/0326.regex +0 -0
  1385. edify-1.0.0/tests/snapshots/docs/api/library/web/0370.regex +0 -0
  1386. edify-1.0.0/tests/snapshots/docs/api/library/web/0434.regex +0 -0
  1387. edify-1.0.0/tests/snapshots/docs/api/library/web/0482.regex +0 -0
  1388. edify-1.0.0/tests/snapshots/docs/api/library/web/0519.regex +0 -0
  1389. edify-1.0.0/tests/snapshots/docs/guide/atoms/finance/0080.regex +1 -0
  1390. edify-1.0.0/tests/snapshots/docs/guide/atoms/grouping/0079.regex +2 -0
  1391. edify-1.0.0/tests/snapshots/docs/guide/atoms/text/0075.regex +0 -0
  1392. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0015.regex +0 -0
  1393. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0034.regex +0 -0
  1394. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0055.regex +0 -0
  1395. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0067.regex +0 -0
  1396. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0081.regex +0 -0
  1397. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0107.regex +0 -0
  1398. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0119.regex +0 -0
  1399. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0139.regex +0 -0
  1400. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0154.regex +0 -0
  1401. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0183.regex +0 -0
  1402. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0199.regex +0 -0
  1403. edify-1.0.0/tests/snapshots/docs/guide/beyond/errors/0011.regex +0 -0
  1404. edify-1.0.0/tests/snapshots/docs/guide/beyond/errors/0066.regex +0 -0
  1405. edify-1.0.0/tests/snapshots/docs/guide/beyond/errors/0114.regex +0 -0
  1406. edify-1.0.0/tests/snapshots/docs/guide/beyond/errors/0173.regex +0 -0
  1407. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0010.regex +0 -0
  1408. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0022.regex +0 -0
  1409. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0033.regex +1 -0
  1410. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0068.regex +0 -0
  1411. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0086.regex +1 -0
  1412. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0121.regex +0 -0
  1413. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0141.regex +0 -0
  1414. edify-1.0.0/tests/snapshots/docs/guide/beyond/integrations/0022.regex +0 -0
  1415. edify-1.0.0/tests/snapshots/docs/guide/beyond/integrations/0075.regex +1 -0
  1416. edify-1.0.0/tests/snapshots/docs/guide/beyond/integrations/0097.regex +1 -0
  1417. edify-1.0.0/tests/snapshots/docs/guide/beyond/integrations/0124.regex +0 -0
  1418. edify-1.0.0/tests/snapshots/docs/guide/beyond/integrations/0137.regex +0 -0
  1419. edify-1.0.0/tests/snapshots/docs/guide/beyond/integrations/0157.regex +1 -0
  1420. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0013.regex +0 -0
  1421. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0033.regex +1 -0
  1422. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0064.regex +1 -0
  1423. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0100.regex +2 -0
  1424. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0136.regex +1 -0
  1425. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0148.regex +1 -0
  1426. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0163.regex +0 -0
  1427. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0175.regex +1 -0
  1428. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0192.regex +0 -0
  1429. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0213.regex +1 -0
  1430. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0012.regex +1 -0
  1431. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0033.regex +1 -0
  1432. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0053.regex +1 -0
  1433. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0092.regex +1 -0
  1434. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0109.regex +1 -0
  1435. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0134.regex +1 -0
  1436. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0152.regex +1 -0
  1437. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0199.regex +1 -0
  1438. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0215.regex +1 -0
  1439. edify-1.0.0/tests/snapshots/docs/guide/beyond/serialization/0020.regex +1 -0
  1440. edify-1.0.0/tests/snapshots/docs/guide/beyond/serialization/0068.regex +0 -0
  1441. edify-1.0.0/tests/snapshots/docs/guide/beyond/serialization/0092.regex +0 -0
  1442. edify-1.0.0/tests/snapshots/docs/guide/beyond/serialization/0131.regex +0 -0
  1443. edify-1.0.0/tests/snapshots/docs/guide/beyond/serialization/0156.regex +2 -0
  1444. edify-1.0.0/tests/snapshots/docs/guide/beyond/testing/0017.regex +0 -0
  1445. edify-1.0.0/tests/snapshots/docs/guide/beyond/testing/0092.regex +0 -0
  1446. edify-1.0.0/tests/snapshots/docs/guide/beyond/testing/0142.regex +0 -0
  1447. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0017.regex +0 -0
  1448. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0027.regex +0 -0
  1449. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0064.regex +0 -0
  1450. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0071.regex +1 -0
  1451. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0101.regex +0 -0
  1452. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0113.regex +0 -0
  1453. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0138.regex +1 -0
  1454. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0014.regex +0 -0
  1455. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0024.regex +1 -0
  1456. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0054.regex +0 -0
  1457. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0063.regex +0 -0
  1458. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0090.regex +0 -0
  1459. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0122.regex +1 -0
  1460. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0148.regex +1 -0
  1461. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0177.regex +0 -0
  1462. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0194.regex +1 -0
  1463. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0013.regex +0 -0
  1464. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0027.regex +0 -0
  1465. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0046.regex +0 -0
  1466. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0062.regex +0 -0
  1467. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0088.regex +0 -0
  1468. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0099.regex +0 -0
  1469. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0111.regex +0 -0
  1470. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0124.regex +0 -0
  1471. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0142.regex +0 -0
  1472. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0244.regex +0 -0
  1473. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0014.regex +1 -0
  1474. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0053.regex +1 -0
  1475. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0079.regex +0 -0
  1476. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0098.regex +0 -0
  1477. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0136.regex +0 -0
  1478. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0153.regex +1 -0
  1479. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0169.regex +0 -0
  1480. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0194.regex +0 -0
  1481. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0014.regex +0 -0
  1482. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0024.regex +0 -0
  1483. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0054.regex +0 -0
  1484. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0064.regex +0 -0
  1485. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0075.regex +2 -0
  1486. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0098.regex +0 -0
  1487. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0117.regex +0 -0
  1488. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0160.regex +0 -0
  1489. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0175.regex +0 -0
  1490. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0017.regex +0 -0
  1491. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0030.regex +1 -0
  1492. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0058.regex +0 -0
  1493. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0068.regex +1 -0
  1494. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0093.regex +1 -0
  1495. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0126.regex +1 -0
  1496. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0180.regex +1 -0
  1497. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0198.regex +0 -0
  1498. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0012.regex +0 -0
  1499. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0036.regex +0 -0
  1500. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0052.regex +0 -0
  1501. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0063.regex +2 -0
  1502. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0098.regex +0 -0
  1503. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0124.regex +0 -0
  1504. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0141.regex +0 -0
  1505. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0159.regex +0 -0
  1506. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0182.regex +0 -0
  1507. edify-1.0.0/tests/snapshots/docs/guide/practice/debugging/0016.regex +0 -0
  1508. edify-1.0.0/tests/snapshots/docs/guide/practice/debugging/0044.regex +0 -0
  1509. edify-1.0.0/tests/snapshots/docs/guide/practice/debugging/0121.regex +1 -0
  1510. edify-1.0.0/tests/snapshots/docs/guide/practice/debugging/0152.regex +1 -0
  1511. edify-1.0.0/tests/snapshots/docs/guide/practice/debugging/0189.regex +0 -0
  1512. edify-1.0.0/tests/snapshots/docs/guide/practice/performance/0022.regex +1 -0
  1513. edify-1.0.0/tests/snapshots/docs/guide/practice/performance/0104.regex +0 -0
  1514. edify-1.0.0/tests/snapshots/docs/guide/practice/performance/0114.regex +0 -0
  1515. edify-1.0.0/tests/snapshots/docs/guide/practice/performance/0133.regex +1 -0
  1516. edify-1.0.0/tests/snapshots/docs/guide/practice/recipes/0016.regex +0 -0
  1517. edify-1.0.0/tests/snapshots/docs/guide/practice/recipes/0062.regex +1 -0
  1518. edify-1.0.0/tests/snapshots/docs/guide/practice/recipes/0088.regex +1 -0
  1519. edify-1.0.0/tests/snapshots/docs/guide/practice/recipes/0125.regex +1 -0
  1520. edify-1.0.0/tests/snapshots/docs/guide/practice/recipes/0153.regex +1 -0
  1521. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0018.regex +0 -0
  1522. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0032.regex +1 -0
  1523. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0063.regex +1 -0
  1524. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0078.regex +0 -0
  1525. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0105.regex +1 -0
  1526. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0142.regex +1 -0
  1527. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0167.regex +1 -0
  1528. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0189.regex +1 -0
  1529. edify-1.0.0/tests/snapshots/docs/guide/start/getting-started/0037.regex +0 -0
  1530. edify-1.0.0/tests/snapshots/docs/guide/start/getting-started/0067.regex +0 -0
  1531. edify-1.0.0/tests/snapshots/docs/guide/start/getting-started/0083.regex +0 -0
  1532. edify-1.0.0/tests/snapshots/docs/guide/start/getting-started/0108.regex +1 -0
  1533. edify-1.0.0/tests/snapshots/docs/guide/start/getting-started/0118.regex +1 -0
  1534. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0015.regex +0 -0
  1535. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0028.regex +0 -0
  1536. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0055.regex +0 -0
  1537. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0078.regex +0 -0
  1538. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0103.regex +0 -0
  1539. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0129.regex +0 -0
  1540. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0140.regex +0 -0
  1541. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0155.regex +0 -0
  1542. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0164.regex +0 -0
  1543. edify-1.0.0/tests/snapshots/docs/library/address/index/0010.regex +0 -0
  1544. edify-1.0.0/tests/snapshots/docs/library/api/index/0009.regex +0 -0
  1545. edify-1.0.0/tests/snapshots/docs/library/auth/index/0011.regex +0 -0
  1546. edify-1.0.0/tests/snapshots/docs/library/color/index/0009.regex +0 -0
  1547. edify-1.0.0/tests/snapshots/docs/library/contact/index/0009.regex +0 -0
  1548. edify-1.0.0/tests/snapshots/docs/library/data/index/0009.regex +0 -0
  1549. edify-1.0.0/tests/snapshots/docs/library/document/index/0009.regex +0 -0
  1550. edify-1.0.0/tests/snapshots/docs/library/financial/index/0013.regex +0 -0
  1551. edify-1.0.0/tests/snapshots/docs/library/geo/index/0009.regex +0 -0
  1552. edify-1.0.0/tests/snapshots/docs/library/grammar/index/0009.regex +0 -0
  1553. edify-1.0.0/tests/snapshots/docs/library/identifier/index/0014.regex +0 -0
  1554. edify-1.0.0/tests/snapshots/docs/library/index/0008.regex +0 -0
  1555. edify-1.0.0/tests/snapshots/docs/library/media/index/0009.regex +0 -0
  1556. edify-1.0.0/tests/snapshots/docs/library/medical/index/0012.regex +0 -0
  1557. edify-1.0.0/tests/snapshots/docs/library/numeric/index/0009.regex +0 -0
  1558. edify-1.0.0/tests/snapshots/docs/library/product/index/0008.regex +0 -0
  1559. edify-1.0.0/tests/snapshots/docs/library/publishing/index/0008.regex +0 -0
  1560. edify-1.0.0/tests/snapshots/docs/library/security/index/0013.regex +0 -0
  1561. edify-1.0.0/tests/snapshots/docs/library/software/index/0009.regex +0 -0
  1562. edify-1.0.0/tests/snapshots/docs/library/temporal/index/0013.regex +0 -0
  1563. edify-1.0.0/tests/snapshots/docs/library/text/index/0010.regex +0 -0
  1564. edify-1.0.0/tests/snapshots/docs/library/transport/index/0008.regex +0 -0
  1565. edify-1.0.0/tests/snapshots/docs/library/web/index/0009.regex +0 -0
  1566. edify-1.0.0/tests/snapshots/docs/upgrading/0.3-to-1.0/0037.regex +0 -0
  1567. edify-1.0.0/tests/snapshots/docs/upgrading/0.3-to-1.0/0055.regex +0 -0
  1568. edify-1.0.0/tests/snapshots/docs/upgrading/0.3-to-1.0/0089.regex +1 -0
  1569. edify-1.0.0/tests/snapshots/docs/upgrading/0.3-to-1.0/0102.regex +0 -0
  1570. edify-1.0.0/tests/snapshots/docs/upgrading/0.3-to-1.0/0138.regex +0 -0
  1571. edify-1.0.0/tests/snapshots/fixtures/alternation_with_overlapping_prefixes_redos.regex +1 -0
  1572. edify-1.0.0/tests/snapshots/fixtures/combined_lookaround.regex +1 -0
  1573. edify-1.0.0/tests/snapshots/fixtures/deeply_nested_alternation.regex +1 -0
  1574. edify-1.0.0/tests/snapshots/fixtures/email_shape_pattern.regex +1 -0
  1575. edify-1.0.0/tests/snapshots/fixtures/hex_color_pattern.regex +1 -0
  1576. edify-1.0.0/tests/snapshots/fixtures/named_backreference_pair.regex +1 -0
  1577. edify-1.0.0/tests/snapshots/fixtures/nested_unbounded_quantifier_redos.regex +1 -0
  1578. edify-1.0.0/tests/snapshots/fixtures/pattern_composition_via_use.regex +1 -0
  1579. edify-1.0.0/tests/snapshots/library/abnf.regex +1 -0
  1580. edify-1.0.0/tests/snapshots/library/address.regex +1 -0
  1581. edify-1.0.0/tests/snapshots/library/age.regex +1 -0
  1582. edify-1.0.0/tests/snapshots/library/aircraft.regex +1 -0
  1583. edify-1.0.0/tests/snapshots/library/alpha.regex +1 -0
  1584. edify-1.0.0/tests/snapshots/library/alphanumeric.regex +1 -0
  1585. edify-1.0.0/tests/snapshots/library/altitude.regex +1 -0
  1586. edify-1.0.0/tests/snapshots/library/antlr.regex +1 -0
  1587. edify-1.0.0/tests/snapshots/library/apache.regex +1 -0
  1588. edify-1.0.0/tests/snapshots/library/apikey.regex +1 -0
  1589. edify-1.0.0/tests/snapshots/library/arn.regex +1 -0
  1590. edify-1.0.0/tests/snapshots/library/arxiv.regex +1 -0
  1591. edify-1.0.0/tests/snapshots/library/ascii.regex +1 -0
  1592. edify-1.0.0/tests/snapshots/library/asin.regex +1 -0
  1593. edify-1.0.0/tests/snapshots/library/atom.regex +1 -0
  1594. edify-1.0.0/tests/snapshots/library/avro.regex +1 -0
  1595. edify-1.0.0/tests/snapshots/library/barcode.regex +1 -0
  1596. edify-1.0.0/tests/snapshots/library/base.regex +1 -0
  1597. edify-1.0.0/tests/snapshots/library/bearer.regex +1 -0
  1598. edify-1.0.0/tests/snapshots/library/bearing.regex +1 -0
  1599. edify-1.0.0/tests/snapshots/library/bic.regex +1 -0
  1600. edify-1.0.0/tests/snapshots/library/blood.regex +1 -0
  1601. edify-1.0.0/tests/snapshots/library/bnf.regex +2 -0
  1602. edify-1.0.0/tests/snapshots/library/bump.regex +1 -0
  1603. edify-1.0.0/tests/snapshots/library/captcha.regex +1 -0
  1604. edify-1.0.0/tests/snapshots/library/card.regex +1 -0
  1605. edify-1.0.0/tests/snapshots/library/cargo.regex +1 -0
  1606. edify-1.0.0/tests/snapshots/library/certificate.regex +1 -0
  1607. edify-1.0.0/tests/snapshots/library/challenge.regex +1 -0
  1608. edify-1.0.0/tests/snapshots/library/charset.regex +1 -0
  1609. edify-1.0.0/tests/snapshots/library/checksum.regex +1 -0
  1610. edify-1.0.0/tests/snapshots/library/cidr.regex +1 -0
  1611. edify-1.0.0/tests/snapshots/library/codec.regex +1 -0
  1612. edify-1.0.0/tests/snapshots/library/color.regex +1 -0
  1613. edify-1.0.0/tests/snapshots/library/component.regex +1 -0
  1614. edify-1.0.0/tests/snapshots/library/cookie.regex +1 -0
  1615. edify-1.0.0/tests/snapshots/library/coordinate.regex +1 -0
  1616. edify-1.0.0/tests/snapshots/library/cron.regex +1 -0
  1617. edify-1.0.0/tests/snapshots/library/crypto.regex +1 -0
  1618. edify-1.0.0/tests/snapshots/library/csp.regex +1 -0
  1619. edify-1.0.0/tests/snapshots/library/csr.regex +1 -0
  1620. edify-1.0.0/tests/snapshots/library/csrf.regex +1 -0
  1621. edify-1.0.0/tests/snapshots/library/csv.regex +7 -0
  1622. edify-1.0.0/tests/snapshots/library/currency.regex +1 -0
  1623. edify-1.0.0/tests/snapshots/library/cusip.regex +1 -0
  1624. edify-1.0.0/tests/snapshots/library/date.regex +1 -0
  1625. edify-1.0.0/tests/snapshots/library/datetime.regex +1 -0
  1626. edify-1.0.0/tests/snapshots/library/der.regex +0 -0
  1627. edify-1.0.0/tests/snapshots/library/dicom.regex +1 -0
  1628. edify-1.0.0/tests/snapshots/library/did.regex +1 -0
  1629. edify-1.0.0/tests/snapshots/library/digest.regex +1 -0
  1630. edify-1.0.0/tests/snapshots/library/docker.regex +1 -0
  1631. edify-1.0.0/tests/snapshots/library/docx.regex +1 -0
  1632. edify-1.0.0/tests/snapshots/library/doi.regex +1 -0
  1633. edify-1.0.0/tests/snapshots/library/domain.regex +1 -0
  1634. edify-1.0.0/tests/snapshots/library/dosage.regex +1 -0
  1635. edify-1.0.0/tests/snapshots/library/duration.regex +1 -0
  1636. edify-1.0.0/tests/snapshots/library/ebnf.regex +1 -0
  1637. edify-1.0.0/tests/snapshots/library/ein.regex +1 -0
  1638. edify-1.0.0/tests/snapshots/library/email.regex +1 -0
  1639. edify-1.0.0/tests/snapshots/library/email_rfc_5322.regex +1 -0
  1640. edify-1.0.0/tests/snapshots/library/emoji.regex +1 -0
  1641. edify-1.0.0/tests/snapshots/library/encoding.regex +1 -0
  1642. edify-1.0.0/tests/snapshots/library/epoch.regex +1 -0
  1643. edify-1.0.0/tests/snapshots/library/epub.regex +1 -0
  1644. edify-1.0.0/tests/snapshots/library/extension.regex +1 -0
  1645. edify-1.0.0/tests/snapshots/library/favicon.regex +0 -0
  1646. edify-1.0.0/tests/snapshots/library/fax.regex +1 -0
  1647. edify-1.0.0/tests/snapshots/library/filename.regex +0 -0
  1648. edify-1.0.0/tests/snapshots/library/filter.regex +1 -0
  1649. edify-1.0.0/tests/snapshots/library/flight.regex +1 -0
  1650. edify-1.0.0/tests/snapshots/library/fraction.regex +1 -0
  1651. edify-1.0.0/tests/snapshots/library/geohash.regex +1 -0
  1652. edify-1.0.0/tests/snapshots/library/git.regex +1 -0
  1653. edify-1.0.0/tests/snapshots/library/glob.regex +0 -0
  1654. edify-1.0.0/tests/snapshots/library/gradient.regex +1 -0
  1655. edify-1.0.0/tests/snapshots/library/graphql.regex +1 -0
  1656. edify-1.0.0/tests/snapshots/library/gtin.regex +1 -0
  1657. edify-1.0.0/tests/snapshots/library/guid.regex +1 -0
  1658. edify-1.0.0/tests/snapshots/library/hal.regex +1 -0
  1659. edify-1.0.0/tests/snapshots/library/handle.regex +1 -0
  1660. edify-1.0.0/tests/snapshots/library/hash.regex +1 -0
  1661. edify-1.0.0/tests/snapshots/library/hdf5.regex +3 -0
  1662. edify-1.0.0/tests/snapshots/library/hmac.regex +1 -0
  1663. edify-1.0.0/tests/snapshots/library/hostname.regex +1 -0
  1664. edify-1.0.0/tests/snapshots/library/htaccess.regex +1 -0
  1665. edify-1.0.0/tests/snapshots/library/html.regex +1 -0
  1666. edify-1.0.0/tests/snapshots/library/humans.regex +1 -0
  1667. edify-1.0.0/tests/snapshots/library/iata.regex +1 -0
  1668. edify-1.0.0/tests/snapshots/library/iban.regex +1 -0
  1669. edify-1.0.0/tests/snapshots/library/icao.regex +1 -0
  1670. edify-1.0.0/tests/snapshots/library/iccid.regex +1 -0
  1671. edify-1.0.0/tests/snapshots/library/image.regex +1 -0
  1672. edify-1.0.0/tests/snapshots/library/imei.regex +1 -0
  1673. edify-1.0.0/tests/snapshots/library/imo.regex +1 -0
  1674. edify-1.0.0/tests/snapshots/library/ini.regex +2 -0
  1675. edify-1.0.0/tests/snapshots/library/integer.regex +1 -0
  1676. edify-1.0.0/tests/snapshots/library/interval.regex +1 -0
  1677. edify-1.0.0/tests/snapshots/library/ip.regex +1 -0
  1678. edify-1.0.0/tests/snapshots/library/ipv4.regex +1 -0
  1679. edify-1.0.0/tests/snapshots/library/ipv6.regex +1 -0
  1680. edify-1.0.0/tests/snapshots/library/isbn.regex +1 -0
  1681. edify-1.0.0/tests/snapshots/library/isin.regex +1 -0
  1682. edify-1.0.0/tests/snapshots/library/iso_date.regex +1 -0
  1683. edify-1.0.0/tests/snapshots/library/issn.regex +1 -0
  1684. edify-1.0.0/tests/snapshots/library/itin.regex +1 -0
  1685. edify-1.0.0/tests/snapshots/library/json.regex +1 -0
  1686. edify-1.0.0/tests/snapshots/library/jsonapi.regex +1 -0
  1687. edify-1.0.0/tests/snapshots/library/jwt.regex +1 -0
  1688. edify-1.0.0/tests/snapshots/library/keyring.regex +1 -0
  1689. edify-1.0.0/tests/snapshots/library/lei.regex +1 -0
  1690. edify-1.0.0/tests/snapshots/library/locale.regex +1 -0
  1691. edify-1.0.0/tests/snapshots/library/mac.regex +1 -0
  1692. edify-1.0.0/tests/snapshots/library/makefile.regex +1 -0
  1693. edify-1.0.0/tests/snapshots/library/manifest.regex +1 -0
  1694. edify-1.0.0/tests/snapshots/library/medical.regex +1 -0
  1695. edify-1.0.0/tests/snapshots/library/meid.regex +1 -0
  1696. edify-1.0.0/tests/snapshots/library/mfa.regex +1 -0
  1697. edify-1.0.0/tests/snapshots/library/mgrs.regex +1 -0
  1698. edify-1.0.0/tests/snapshots/library/mimetype.regex +1 -0
  1699. edify-1.0.0/tests/snapshots/library/mmsi.regex +1 -0
  1700. edify-1.0.0/tests/snapshots/library/mnemonic.regex +1 -0
  1701. edify-1.0.0/tests/snapshots/library/mobi.regex +1 -0
  1702. edify-1.0.0/tests/snapshots/library/mpn.regex +1 -0
  1703. edify-1.0.0/tests/snapshots/library/msgpack.regex +1 -0
  1704. edify-1.0.0/tests/snapshots/library/natural.regex +1 -0
  1705. edify-1.0.0/tests/snapshots/library/nginx.regex +1 -0
  1706. edify-1.0.0/tests/snapshots/library/nonce.regex +1 -0
  1707. edify-1.0.0/tests/snapshots/library/number.regex +1 -0
  1708. edify-1.0.0/tests/snapshots/library/numeric.regex +1 -0
  1709. edify-1.0.0/tests/snapshots/library/oauth.regex +1 -0
  1710. edify-1.0.0/tests/snapshots/library/odt.regex +1 -0
  1711. edify-1.0.0/tests/snapshots/library/offset.regex +1 -0
  1712. edify-1.0.0/tests/snapshots/library/openapi.regex +1 -0
  1713. edify-1.0.0/tests/snapshots/library/openid.regex +1 -0
  1714. edify-1.0.0/tests/snapshots/library/orc.regex +1 -0
  1715. edify-1.0.0/tests/snapshots/library/orcid.regex +1 -0
  1716. edify-1.0.0/tests/snapshots/library/ordinal.regex +1 -0
  1717. edify-1.0.0/tests/snapshots/library/otp.regex +1 -0
  1718. edify-1.0.0/tests/snapshots/library/package.regex +1 -0
  1719. edify-1.0.0/tests/snapshots/library/pager.regex +1 -0
  1720. edify-1.0.0/tests/snapshots/library/palette.regex +1 -0
  1721. edify-1.0.0/tests/snapshots/library/parquet.regex +1 -0
  1722. edify-1.0.0/tests/snapshots/library/passkey.regex +1 -0
  1723. edify-1.0.0/tests/snapshots/library/password.regex +1 -0
  1724. edify-1.0.0/tests/snapshots/library/path.regex +0 -0
  1725. edify-1.0.0/tests/snapshots/library/pdf.regex +1 -0
  1726. edify-1.0.0/tests/snapshots/library/peg.regex +1 -0
  1727. edify-1.0.0/tests/snapshots/library/pem.regex +1 -0
  1728. edify-1.0.0/tests/snapshots/library/percentage.regex +1 -0
  1729. edify-1.0.0/tests/snapshots/library/pest.regex +1 -0
  1730. edify-1.0.0/tests/snapshots/library/pgp.regex +1 -0
  1731. edify-1.0.0/tests/snapshots/library/phone.regex +1 -0
  1732. edify-1.0.0/tests/snapshots/library/pin.regex +1 -0
  1733. edify-1.0.0/tests/snapshots/library/place.regex +1 -0
  1734. edify-1.0.0/tests/snapshots/library/plate.regex +1 -0
  1735. edify-1.0.0/tests/snapshots/library/plus.regex +1 -0
  1736. edify-1.0.0/tests/snapshots/library/pmc.regex +1 -0
  1737. edify-1.0.0/tests/snapshots/library/pmid.regex +1 -0
  1738. edify-1.0.0/tests/snapshots/library/port.regex +1 -0
  1739. edify-1.0.0/tests/snapshots/library/postal.regex +1 -0
  1740. edify-1.0.0/tests/snapshots/library/pptx.regex +1 -0
  1741. edify-1.0.0/tests/snapshots/library/printable.regex +0 -0
  1742. edify-1.0.0/tests/snapshots/library/protobuf.regex +1 -0
  1743. edify-1.0.0/tests/snapshots/library/ptr.regex +1 -0
  1744. edify-1.0.0/tests/snapshots/library/ratio.regex +1 -0
  1745. edify-1.0.0/tests/snapshots/library/readme.regex +1 -0
  1746. edify-1.0.0/tests/snapshots/library/ref.regex +1 -0
  1747. edify-1.0.0/tests/snapshots/library/refresh.regex +1 -0
  1748. edify-1.0.0/tests/snapshots/library/regex.regex +1 -0
  1749. edify-1.0.0/tests/snapshots/library/robots.regex +1 -0
  1750. edify-1.0.0/tests/snapshots/library/roman.regex +1 -0
  1751. edify-1.0.0/tests/snapshots/library/routing.regex +1 -0
  1752. edify-1.0.0/tests/snapshots/library/rss.regex +1 -0
  1753. edify-1.0.0/tests/snapshots/library/rtf.regex +1 -0
  1754. edify-1.0.0/tests/snapshots/library/saml.regex +1 -0
  1755. edify-1.0.0/tests/snapshots/library/scientific.regex +1 -0
  1756. edify-1.0.0/tests/snapshots/library/script.regex +1 -0
  1757. edify-1.0.0/tests/snapshots/library/secret.regex +1 -0
  1758. edify-1.0.0/tests/snapshots/library/sedol.regex +1 -0
  1759. edify-1.0.0/tests/snapshots/library/semver.regex +1 -0
  1760. edify-1.0.0/tests/snapshots/library/session.regex +1 -0
  1761. edify-1.0.0/tests/snapshots/library/shebang.regex +1 -0
  1762. edify-1.0.0/tests/snapshots/library/signature.regex +1 -0
  1763. edify-1.0.0/tests/snapshots/library/signing.regex +1 -0
  1764. edify-1.0.0/tests/snapshots/library/sitemap.regex +1 -0
  1765. edify-1.0.0/tests/snapshots/library/sku.regex +1 -0
  1766. edify-1.0.0/tests/snapshots/library/slug.regex +1 -0
  1767. edify-1.0.0/tests/snapshots/library/soap.regex +1 -0
  1768. edify-1.0.0/tests/snapshots/library/socket.regex +1 -0
  1769. edify-1.0.0/tests/snapshots/library/sortcode.regex +1 -0
  1770. edify-1.0.0/tests/snapshots/library/ssh.regex +1 -0
  1771. edify-1.0.0/tests/snapshots/library/ssn.regex +1 -0
  1772. edify-1.0.0/tests/snapshots/library/sso.regex +1 -0
  1773. edify-1.0.0/tests/snapshots/library/subdomain.regex +1 -0
  1774. edify-1.0.0/tests/snapshots/library/subnet.regex +1 -0
  1775. edify-1.0.0/tests/snapshots/library/svg.regex +1 -0
  1776. edify-1.0.0/tests/snapshots/library/swagger.regex +1 -0
  1777. edify-1.0.0/tests/snapshots/library/swatch.regex +1 -0
  1778. edify-1.0.0/tests/snapshots/library/tex.regex +1 -0
  1779. edify-1.0.0/tests/snapshots/library/time.regex +1 -0
  1780. edify-1.0.0/tests/snapshots/library/timestamp.regex +1 -0
  1781. edify-1.0.0/tests/snapshots/library/timezone.regex +1 -0
  1782. edify-1.0.0/tests/snapshots/library/tin.regex +1 -0
  1783. edify-1.0.0/tests/snapshots/library/tld.regex +1 -0
  1784. edify-1.0.0/tests/snapshots/library/token.regex +1 -0
  1785. edify-1.0.0/tests/snapshots/library/toml.regex +2 -0
  1786. edify-1.0.0/tests/snapshots/library/tsv.regex +7 -0
  1787. edify-1.0.0/tests/snapshots/library/unicode.regex +0 -0
  1788. edify-1.0.0/tests/snapshots/library/uri.regex +1 -0
  1789. edify-1.0.0/tests/snapshots/library/url.regex +1 -0
  1790. edify-1.0.0/tests/snapshots/library/useragent.regex +1 -0
  1791. edify-1.0.0/tests/snapshots/library/username.regex +1 -0
  1792. edify-1.0.0/tests/snapshots/library/uuid.regex +1 -0
  1793. edify-1.0.0/tests/snapshots/library/vat.regex +1 -0
  1794. edify-1.0.0/tests/snapshots/library/vehicle.regex +1 -0
  1795. edify-1.0.0/tests/snapshots/library/version.regex +1 -0
  1796. edify-1.0.0/tests/snapshots/library/vin.regex +1 -0
  1797. edify-1.0.0/tests/snapshots/library/wallet.regex +1 -0
  1798. edify-1.0.0/tests/snapshots/library/webauthn.regex +1 -0
  1799. edify-1.0.0/tests/snapshots/library/webhook.regex +1 -0
  1800. edify-1.0.0/tests/snapshots/library/word.regex +1 -0
  1801. edify-1.0.0/tests/snapshots/library/x509.regex +1 -0
  1802. edify-1.0.0/tests/snapshots/library/xlsx.regex +1 -0
  1803. edify-1.0.0/tests/snapshots/library/xml.regex +1 -0
  1804. edify-1.0.0/tests/snapshots/library/yaml.regex +1 -0
  1805. edify-1.0.0/tests/snapshots/library/year.regex +1 -0
  1806. edify-1.0.0/tests/snapshots/library/zip_code.regex +1 -0
  1807. edify-1.0.0/tests/testing/snapshots.test.py +105 -0
  1808. edify-1.0.0/tests/tools/changes.test.py +110 -0
  1809. edify-1.0.0/tests/tools/surface.test.py +83 -0
  1810. edify-0.2.2/.bumpversion.cfg +0 -25
  1811. edify-0.2.2/.cookiecutterrc +0 -74
  1812. edify-0.2.2/.coveragerc +0 -16
  1813. edify-0.2.2/.editorconfig +0 -20
  1814. edify-0.2.2/.github/workflows/github-actions.yml +0 -167
  1815. edify-0.2.2/.pre-commit-config.yaml +0 -24
  1816. edify-0.2.2/.readthedocs.yml +0 -10
  1817. edify-0.2.2/AUTHORS.rst +0 -5
  1818. edify-0.2.2/CHANGELOG.rst +0 -44
  1819. edify-0.2.2/CONTRIBUTING.rst +0 -91
  1820. edify-0.2.2/LICENSE +0 -201
  1821. edify-0.2.2/MANIFEST.in +0 -24
  1822. edify-0.2.2/PKG-INFO +0 -346
  1823. edify-0.2.2/README.rst +0 -269
  1824. edify-0.2.2/ci/bootstrap.py +0 -93
  1825. edify-0.2.2/ci/requirements.txt +0 -5
  1826. edify-0.2.2/ci/templates/.appveyor.yml +0 -46
  1827. edify-0.2.2/ci/templates/.github/workflows/github-actions.yml +0 -65
  1828. edify-0.2.2/docs/authors.rst +0 -1
  1829. edify-0.2.2/docs/built-in/index.rst +0 -1022
  1830. edify-0.2.2/docs/conf.py +0 -47
  1831. edify-0.2.2/docs/index.rst +0 -20
  1832. edify-0.2.2/docs/readme.rst +0 -1
  1833. edify-0.2.2/docs/regex-builder/builder/index.rst +0 -937
  1834. edify-0.2.2/docs/regex-builder/flags/index.rst +0 -96
  1835. edify-0.2.2/docs/regex-builder/index.rst +0 -9
  1836. edify-0.2.2/docs/requirements.txt +0 -2
  1837. edify-0.2.2/docs/spelling_wordlist.txt +0 -11
  1838. edify-0.2.2/images/cover.png +0 -0
  1839. edify-0.2.2/images/logo_1500px.png +0 -0
  1840. edify-0.2.2/images/logo_500px.png +0 -0
  1841. edify-0.2.2/images/logo_no_text_1500px.png +0 -0
  1842. edify-0.2.2/images/logo_no_text_500px.png +0 -0
  1843. edify-0.2.2/images/logo_no_text_black_1500px.png +0 -0
  1844. edify-0.2.2/images/logo_no_text_black_500px.png +0 -0
  1845. edify-0.2.2/images/logo_no_text_t_1500px.png +0 -0
  1846. edify-0.2.2/images/logo_no_text_t_black_1500px.png +0 -0
  1847. edify-0.2.2/images/logo_t_1500px.png +0 -0
  1848. edify-0.2.2/images/logo_t_500px.png +0 -0
  1849. edify-0.2.2/images/logo_t_black_1500px.png +0 -0
  1850. edify-0.2.2/images/logo_t_black_500px.png +0 -0
  1851. edify-0.2.2/images/logo_wob_1500px.png +0 -0
  1852. edify-0.2.2/images/logo_wob_500px.png +0 -0
  1853. edify-0.2.2/pyproject.toml +0 -10
  1854. edify-0.2.2/pytest.ini +0 -28
  1855. edify-0.2.2/setup.cfg +0 -16
  1856. edify-0.2.2/setup.py +0 -79
  1857. edify-0.2.2/src/edify/__init__.py +0 -4
  1858. edify-0.2.2/src/edify/builder/builder.py +0 -532
  1859. edify-0.2.2/src/edify/builder/errors.py +0 -73
  1860. edify-0.2.2/src/edify/builder/helpers/core.py +0 -79
  1861. edify-0.2.2/src/edify/builder/helpers/quantifiers.py +0 -11
  1862. edify-0.2.2/src/edify/builder/helpers/regex_vars.py +0 -1
  1863. edify-0.2.2/src/edify/builder/helpers/t.py +0 -49
  1864. edify-0.2.2/src/edify/library/__init__.py +0 -17
  1865. edify-0.2.2/src/edify/library/date.py +0 -34
  1866. edify-0.2.2/src/edify/library/guid.py +0 -15
  1867. edify-0.2.2/src/edify/library/ip.py +0 -34
  1868. edify-0.2.2/src/edify/library/mac.py +0 -17
  1869. edify-0.2.2/src/edify/library/mail.py +0 -34
  1870. edify-0.2.2/src/edify/library/password.py +0 -40
  1871. edify-0.2.2/src/edify/library/phone.py +0 -19
  1872. edify-0.2.2/src/edify/library/ssn.py +0 -17
  1873. edify-0.2.2/src/edify/library/support/zip.py +0 -253
  1874. edify-0.2.2/src/edify/library/url.py +0 -39
  1875. edify-0.2.2/src/edify/library/uuid.py +0 -14
  1876. edify-0.2.2/src/edify/library/zip.py +0 -29
  1877. edify-0.2.2/src/edify.egg-info/PKG-INFO +0 -346
  1878. edify-0.2.2/src/edify.egg-info/SOURCES.txt +0 -89
  1879. edify-0.2.2/src/edify.egg-info/dependency_links.txt +0 -1
  1880. edify-0.2.2/src/edify.egg-info/not-zip-safe +0 -1
  1881. edify-0.2.2/src/edify.egg-info/top_level.txt +0 -1
  1882. edify-0.2.2/tests/ssn_test.py +0 -12
  1883. edify-0.2.2/tests/test_builder.py +0 -518
  1884. edify-0.2.2/tests/test_date.py +0 -57
  1885. edify-0.2.2/tests/test_email.py +0 -89
  1886. edify-0.2.2/tests/test_guid.py +0 -11
  1887. edify-0.2.2/tests/test_ip.py +0 -35
  1888. edify-0.2.2/tests/test_mac.py +0 -12
  1889. edify-0.2.2/tests/test_password.py +0 -10
  1890. edify-0.2.2/tests/test_phone.py +0 -26
  1891. edify-0.2.2/tests/test_url.py +0 -63
  1892. edify-0.2.2/tests/test_zip.py +0 -34
  1893. edify-0.2.2/tests.local.sh +0 -40
  1894. edify-0.2.2/tox.ini +0 -85
  1895. /edify-0.2.2/images/logo_no_text_t_black_500px.png → /edify-1.0.0/docs/_theme/edify/static/img/logo-dark-on-light.png +0 -0
  1896. /edify-0.2.2/images/logo_no_text_t_500px.png → /edify-1.0.0/docs/_theme/edify/static/img/logo-light-on-dark.png +0 -0
  1897. {edify-0.2.2 → edify-1.0.0}/docs/changelog.rst +0 -0
  1898. {edify-0.2.2 → edify-1.0.0}/docs/contributing.rst +0 -0
  1899. /edify-0.2.2/tests/test_uuid.py → /edify-1.0.0/tests/library/uuid.test.py +0 -0
edify-1.0.0/.gitignore ADDED
@@ -0,0 +1,88 @@
1
+ *.py[cod]
2
+ __pycache__
3
+
4
+ # C extensions
5
+ *.so
6
+
7
+ # Packages
8
+ *.egg
9
+ *.egg-info
10
+ dist
11
+ build
12
+ edify/version.py
13
+ eggs
14
+ .eggs
15
+ parts
16
+ bin
17
+ var
18
+ sdist
19
+ wheelhouse
20
+ develop-eggs
21
+ .installed.cfg
22
+ lib
23
+ lib64
24
+ *venv*/
25
+ pyvenv*/
26
+ pip-wheel-metadata/
27
+
28
+ # Installer logs
29
+ pip-log.txt
30
+
31
+ # Unit test / coverage reports
32
+ .coverage
33
+ .tox
34
+ .coverage.*
35
+ .pytest_cache/
36
+ .ruff_cache/
37
+ nosetests.xml
38
+ coverage.xml
39
+ htmlcov
40
+
41
+ # Translations
42
+ *.mo
43
+
44
+ # Buildout
45
+ .mr.developer.cfg
46
+
47
+ # IDE project files
48
+ .project
49
+ .pydevproject
50
+ .idea
51
+ .vscode
52
+ *.iml
53
+ *.komodoproject
54
+
55
+ # Complexity
56
+ output/*.html
57
+ output/*/index.html
58
+
59
+ # Sphinx
60
+ docs/_build
61
+
62
+ .DS_Store
63
+ *~
64
+ .*.sw[po]
65
+ .build
66
+ .ve
67
+ .env
68
+ .cache
69
+ .pytest
70
+ .benchmarks
71
+ .bootstrap
72
+ .appveyor.token
73
+ *.bak
74
+
75
+ # Mypy Cache
76
+ .mypy_cache/
77
+
78
+ # Codecov Binary
79
+ codecov
80
+
81
+ # Design Docs
82
+ design_docs
83
+
84
+ # Docs playground wheel (built at docs-build time)
85
+ docs/_static/edify-*.whl
86
+
87
+ # Playwright test artifacts
88
+ .playwright*
@@ -0,0 +1,6 @@
1
+
2
+ Authors
3
+ =======
4
+
5
+ * Bobby - https://shi.foo
6
+ * natsuoto / 夏音 - https://github.com/natsuoto
@@ -0,0 +1,133 @@
1
+
2
+ Changelog
3
+ =========
4
+ 1.0.0 (2026-08-04)
5
+ ------------------
6
+
7
+ The first stable release. Edify grows from a builder into a full toolkit: a
8
+ library of ready-to-call validators, introspection, serialization, framework
9
+ integrations, and a closed match API — with the builder itself hardened and its
10
+ rough edges filed off, and a documentation site you can run code inside. The
11
+ changes worth knowing before you upgrade are below;
12
+ the :doc:`0.3 → 1.0 guide <upgrading/0.3-to-1.0>` walks each one with
13
+ before/after code.
14
+
15
+ Added
16
+ ~~~~~
17
+
18
+ * A library of 228 ready-to-call validators — email, URL, semver, IBAN, phone, postal, and hundreds more — each a callable :class:`~edify.Pattern` organised into topical categories. See :ref:`validators-callable`.
19
+ * Five closed match verbs on every builder — ``test``, ``match``, ``search``, ``findall``, and ``sub`` — returning edify result wrappers. See :ref:`closed-match-verbs`.
20
+ * :meth:`~edify.RegexBuilder.to_regex` accepts inline flags and an ``engine`` argument, compiling against an alternate backend when one is installed. See :ref:`engine-kwarg`.
21
+ * Builders compare by emitted pattern: two chains that describe the same regex are equal. See :ref:`builder-equality`.
22
+ * Introspection: render any pattern as a plain-English explanation, an ASCII or graph diagram, or an annotated ``re.VERBOSE`` form.
23
+ * Serialization: round-trip a pattern through a dict or JSON.
24
+ * Framework integrations shipped as opt-in extras — ``edify[pydantic]``, ``edify[fastapi]``, and ``edify[django]``.
25
+
26
+ Breaking
27
+ ~~~~~~~~
28
+
29
+ * Python 3.11 or newer is required (:pr:`64`). See :ref:`python-floor`.
30
+ * Relicensed from Apache-2.0 to the `MIT License <https://github.com/luciferreeves/edify/blob/main/LICENSE>`_. No API change. See :ref:`license-mit`.
31
+ * Invalid patterns raise an annotated error at the call site instead of emitting a subtly wrong regex. See :ref:`silent-failure-raises`.
32
+ * Terminal methods return a :class:`~edify.result.Regex` wrapper rather than a bare :class:`re.Pattern`. See :ref:`regex-wrapper-return`.
33
+ * :meth:`~edify.RegexBuilder.to_regex_string` returns the emitted source exactly as written into the pattern. See :ref:`to-regex-string-output`.
34
+ * Named back-references resolve by name and named groups read off ``.captures``. See :ref:`named-backref-return`.
35
+ * Character-class escaping is minimal and correct: only the metacharacters that need escaping inside a class are escaped. See :ref:`char-class-escape`.
36
+ * The validator library is organised into categories, and a handful of import paths moved with it. See :ref:`library-reorg` and :ref:`moved-import-paths`.
37
+
38
+ Documentation
39
+ ~~~~~~~~~~~~~
40
+
41
+ * A rebuilt documentation site: a topic-first guide that works through the builder from anchors to lookaround, a page for every one of the 228 validators, and a complete API reference covering the public surface — every method, property, constant, atom, error, and type.
42
+ * An in-browser playground. Examples throughout the guide and the library are live: edit the chain and the emitted regex and match results update as you type, with edify itself running in your browser. The :doc:`playground <playground>` page is the same widget at full size.
43
+ * Every Python example in the documentation is executed by the test suite and snapshotted against the regex it emits, so a documented pattern cannot drift from what the code produces.
44
+ * Method names, constants, and atoms are cross-linked to their reference entries throughout the prose and inside the code samples.
45
+
46
+ Tooling and CI
47
+ ~~~~~~~~~~~~~~
48
+
49
+ * Dropped the macOS and Windows runners from the CI matrix; Linux-only from here on. Edify is a pure-Python wheel with no platform-specific code, so the multi-OS jobs were buying ~zero signal and produced false negatives (:pr:`60`).
50
+ * Bumped the minimum ``virtualenv`` floor for the CI bootstrap to ``>=21.4.2`` (:pr:`56`, :pr:`58`).
51
+
52
+ 0.3.0 (2026-04-29)
53
+ ------------------
54
+
55
+ A maintenance release: Edify is dragged out of 2022 and back into modern shape. No new patterns or builder API. The minimum supported Python rises to 3.8.
56
+
57
+ Breaking
58
+ ~~~~~~~~
59
+
60
+ * Dropped support for Python 3.7. Edify now requires Python 3.8 or newer (:pr:`32`).
61
+
62
+ Added
63
+ ~~~~~
64
+
65
+ * Support for Python 3.12, 3.13, and 3.14, with the matrix and Read the Docs build configuration updated to match (:pr:`31`).
66
+
67
+ Tooling and CI
68
+ ~~~~~~~~~~~~~~
69
+
70
+ * Bumped GitHub Actions to current major versions: ``actions/checkout@v5``, ``actions/setup-python@v5``, ``github/codeql-action@v3``. All workflow jobs now run on the Node 20 runtime instead of the deprecated Node 16. ``pypa/gh-action-pypi-publish`` SHA refreshed to ``v1.14.0`` (:pr:`35`).
71
+ * PyPy CI matrix moved off the EOL ``pypy-3.8`` line to the maintained ``pypy-3.10`` and ``pypy-3.11`` (:pr:`37`).
72
+ * ``.pre-commit-config.yaml`` modernised: every hook pinned to an immutable tag instead of a floating branch ref, dead repo URLs corrected (``gitlab.com/pycqa/flake8`` → ``github.com/PyCQA/flake8``, ``timothycrosley/isort`` → ``PyCQA/isort``), and ``psf/black`` swapped for the upstream-recommended ``psf/black-pre-commit-mirror`` (:pr:`33`).
73
+
74
+ Dependencies
75
+ ~~~~~~~~~~~~
76
+
77
+ * Bumped minimum versions: ``setuptools >=75.0``, ``pip >=26.0.1``, ``virtualenv >=21.3.0``, ``six >=1.17.0``, ``sphinx >=7.4.7`` (:pr:`25`, :pr:`26`, :pr:`27`, :pr:`28`, :pr:`29`).
78
+
79
+ Repository infrastructure
80
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
81
+
82
+ * Added ``.github/CODEOWNERS`` and ``natsuoto`` to ``AUTHORS.rst`` for the new agent-driven contribution flow (:pr:`39`).
83
+ * Locked ``main``: 1 approving code-owner review required, 31 status-check contexts required (the full matrix), linear history enforced, no force pushes or deletions, applies to administrators.
84
+ * Repo-level ``allow_auto_merge`` enabled — PRs auto-merge once review and CI gates pass.
85
+
86
+ Housekeeping
87
+ ~~~~~~~~~~~~
88
+
89
+ * Dropped a dead ``py37``/``pypy37`` exclusion from the cookiecutter Jinja template and refreshed the docs copyright year (:pr:`43`).
90
+ * Updated author website URL in ``AUTHORS.rst`` and ``.cookiecutterrc`` (:pr:`41`).
91
+ * Removed all cookiecutter regeneration scaffolding — ``.cookiecutterrc``, ``ci/bootstrap.py``, and ``ci/templates/`` (containing dead AppVeyor config and a workflow template that lagged the live one) — along with the ``[testenv:bootstrap]`` env, related ``MANIFEST.in`` / ``setup.cfg`` / ``.pre-commit-config.yaml`` exclusions, and the dead Python 3.7 branch in ``tests.local.sh``. The local-test script's per-version ``if/elif`` chain is now a single programmatic ``tox -e py$VERSION`` lookup, which adapts automatically when Python versions are added or removed from the matrix (:pr:`47`).
92
+
93
+ 0.2.2 (2022-12-22)
94
+ ------------------
95
+ * Added Support for Python 3.11
96
+ * Added more RegexBuilder Examples
97
+ * Fixed Documentation Typos
98
+
99
+ 0.2.1 (2022-11-27)
100
+ ------------------
101
+
102
+ * This is a Quick Fix Release to fix the incomplete release of 0.2.0. The release was intended to drop support for 3.6, but the metadata was not updated to reflect this. This release fixes that. v0.2.0 remains available on PyPI, but is incompatible with Python 3.6. Using it with other versions of Python is not a problem. Other than the metadata, the two releases are identical.
103
+
104
+ 0.2.0 (2022-11-27)
105
+ ------------------
106
+ This is a minor release with a few new built-in validators along with some small changes and bug fixes.
107
+
108
+ Validators added:
109
+ ~~~~~~~~~~~~~~~~~
110
+ * URL Validator
111
+ * UUID Validator
112
+ * GUID Validator
113
+ * SSN Validator
114
+ * Mac Address (IEEE 802) Validator
115
+ * Zip Code Validator
116
+ * Password Validator
117
+
118
+ Documentation:
119
+ ~~~~~~~~~~~~~~
120
+
121
+ * Added documentation for new validators
122
+ * Add warning for trade-offs in email regex validation
123
+
124
+ Bug Fixes:
125
+ ~~~~~~~~~~
126
+
127
+ * Fixed Phone pattern failing for service numbers and 4 digit numbers (See `#16 <https://github.com/luciferreeves/edify/issues/16>`_ for more information)
128
+
129
+
130
+ 0.1.0 (2022-09-10)
131
+ ------------------
132
+
133
+ * First release on PyPI.
@@ -0,0 +1,87 @@
1
+ ============
2
+ Contributing
3
+ ============
4
+
5
+ Thanks for helping improve Edify. This guide gets you from a fresh clone to a
6
+ green pull request.
7
+
8
+ Setup
9
+ =====
10
+
11
+ Edify uses `uv <https://docs.astral.sh/uv/>`_ for everything. Install it, then
12
+ sync the full development environment:
13
+
14
+ .. code-block:: bash
15
+
16
+ git clone https://github.com/luciferreeves/edify
17
+ cd edify
18
+ uv sync --all-groups
19
+
20
+ That creates ``.venv`` with the library, its optional extras, and every
21
+ development tool. Prefix commands with ``uv run`` to use it.
22
+
23
+ The gate
24
+ ========
25
+
26
+ Every change must pass the same checks CI runs. Run them locally before you push:
27
+
28
+ .. code-block:: bash
29
+
30
+ uv run ruff check . # lint
31
+ uv run ruff format --check . # formatting
32
+ uv run mypy edify tools # type-check the library and tooling
33
+ uv run pyright # strict type-check (library, tests, tools)
34
+ uv run pytest # tests — 100% coverage is required
35
+
36
+ All of these must be clean. Coverage is enforced at 100%: a line that isn't
37
+ exercised by a test through the public API fails the build.
38
+
39
+ House style
40
+ ===========
41
+
42
+ - **No suppressions.** No ``# noqa``, ``# type: ignore``, or ``# pragma`` — if a
43
+ check complains, restructure the code so it doesn't.
44
+ - **Single-purpose files with single-word names.** ``edify/builder/anchors.py``,
45
+ not ``edify/builder/anchor_helpers.py``.
46
+ - **Tests mirror the source tree** under ``tests/`` and are named ``*.test.py``
47
+ (for example ``tests/builder/anchors.test.py``).
48
+ - **Tests exercise the public API.** Reach behavior through the documented
49
+ surface, never by importing private helpers — that's what keeps coverage
50
+ honest.
51
+
52
+ Public surface and changelog
53
+ ============================
54
+
55
+ The exported API is captured in ``tools/surface/.public``. If your change adds,
56
+ removes, or alters a public name, regenerate the snapshot and record the change:
57
+
58
+ .. code-block:: bash
59
+
60
+ uv run python tools/surface/surface.py --write
61
+
62
+ For a **breaking** change, also add a fragment under ``changes/`` describing the
63
+ migration (see ``changes/README.rst`` for the format). A CI gate fails any pull
64
+ request whose public surface moves without one.
65
+
66
+ Docs
67
+ ====
68
+
69
+ The documentation is a custom Sphinx site in ``docs/``. Build the playground
70
+ wheel and serve the site with live reload:
71
+
72
+ .. code-block:: bash
73
+
74
+ uv run python tools/docs/build.py
75
+ uv run --with sphinx-autobuild sphinx-autobuild docs docs/_build/html
76
+
77
+ Commits and pull requests
78
+ =========================
79
+
80
+ - **Commits** use a single-line, imperative, `conventional-commit
81
+ <https://www.conventionalcommits.org>`_ subject — ``feat(builder): ...``,
82
+ ``fix(compile): ...``, ``docs: ...``. Keep rationale for the pull-request
83
+ description, not the commit body.
84
+ - **Pull requests** describe *what changed and why*. Reference the issues they
85
+ close with ``Closes #123`` so they land together.
86
+
87
+ That's it — open the pull request and the checks will tell you if anything's off.
edify-1.0.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022-2026 Bobby
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.
edify-1.0.0/PKG-INFO ADDED
@@ -0,0 +1,196 @@
1
+ Metadata-Version: 2.4
2
+ Name: edify
3
+ Version: 1.0.0
4
+ Summary: Regular Expressions Made Simple
5
+ Project-URL: Documentation, https://edify.readthedocs.io/
6
+ Project-URL: Changelog, https://edify.readthedocs.io/en/latest/changelog.html
7
+ Project-URL: Issue Tracker, https://github.com/luciferreeves/edify/issues
8
+ Author-email: Bobby <me@shi.foo>, natsuoto <natsuoto@thatcomputerscientist.com>
9
+ License-Expression: MIT
10
+ License-File: LICENSE
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Operating System :: Microsoft :: Windows
14
+ Classifier: Operating System :: POSIX
15
+ Classifier: Operating System :: Unix
16
+ Classifier: Programming Language :: Python
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3 :: Only
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Programming Language :: Python :: 3.14
23
+ Classifier: Programming Language :: Python :: Implementation :: CPython
24
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
25
+ Classifier: Topic :: Utilities
26
+ Requires-Python: >=3.11
27
+ Provides-Extra: all
28
+ Requires-Dist: django>=4.2; extra == 'all'
29
+ Requires-Dist: fastapi>=0.100; extra == 'all'
30
+ Requires-Dist: graphviz>=0.20; extra == 'all'
31
+ Requires-Dist: pydantic>=2.0; extra == 'all'
32
+ Requires-Dist: regex>=2024.11.6; extra == 'all'
33
+ Provides-Extra: django
34
+ Requires-Dist: django>=4.2; extra == 'django'
35
+ Provides-Extra: fastapi
36
+ Requires-Dist: fastapi>=0.100; extra == 'fastapi'
37
+ Provides-Extra: graphviz
38
+ Requires-Dist: graphviz>=0.20; extra == 'graphviz'
39
+ Provides-Extra: pydantic
40
+ Requires-Dist: pydantic>=2.0; extra == 'pydantic'
41
+ Provides-Extra: regex
42
+ Requires-Dist: regex>=2024.11.6; extra == 'regex'
43
+ Description-Content-Type: text/x-rst
44
+
45
+ =====
46
+ Edify
47
+ =====
48
+
49
+ .. image:: https://raw.githubusercontent.com/luciferreeves/edify/main/images/cover.png
50
+ :alt: Edify — simple regular expressions
51
+
52
+ |
53
+
54
+ **Edify builds regular expressions you can actually read.** It's a fluent,
55
+ immutable regex builder for Python: you describe a pattern step by step in plain
56
+ English, and Edify hands you a compiled regex — one your teammates can review in
57
+ a pull request instead of squinting at.
58
+
59
+ Why Edify
60
+ =========
61
+
62
+ A regular expression is easy to write and hard to read. Six months later nobody
63
+ remembers what ``^(?:0x)?([0-9a-fA-F]{4})$`` was meant to accept, and the person
64
+ reviewing the change that touches it has no way to be sure either. The syntax
65
+ gives you nowhere to put a name, a comment, or a seam.
66
+
67
+ Edify moves the pattern into ordinary Python, where all three fit:
68
+
69
+ - Methods say what they do. ``.one_or_more().digit()`` needs no decoding.
70
+ - The quantity comes before the thing it counts, the way you say it aloud —
71
+ ``.exactly(4).digit()`` is *exactly four digits*.
72
+ - Every call returns a new builder, so a pattern you share can be extended in
73
+ two directions without either one disturbing the other.
74
+ - A mistake raises an error that points at the call that caused it and names the
75
+ fix, rather than emitting a regex that is subtly wrong.
76
+
77
+ A first pattern
78
+ ===============
79
+
80
+ .. code-block:: python
81
+
82
+ from edify import RegexBuilder
83
+
84
+ # A 16-bit hex literal like "0xC0DE" — with the four hex digits captured.
85
+ hex_literal = (
86
+ RegexBuilder()
87
+ .start_of_input()
88
+ .optional().string("0x")
89
+ .capture()
90
+ .exactly(4).any_of().range("0", "9").range("a", "f").range("A", "F").end()
91
+ .end()
92
+ .end_of_input()
93
+ )
94
+
95
+ hex_literal.to_regex_string() # '^(?:0x)?([0-9a-fA-F]{4})$'
96
+ hex_literal.test("0xC0DE") # True
97
+ hex_literal.test("0xZZZZ") # False
98
+
99
+ Read the chain top to bottom and it tells you what it accepts.
100
+
101
+ Patterns you don't have to write
102
+ ================================
103
+
104
+ Edify ships 228 ready-made validators. Each is a callable pattern, so checking a
105
+ value is a function call:
106
+
107
+ .. code-block:: python
108
+
109
+ from edify.library import email, ipv4, semver
110
+
111
+ email("a@b.com") # True
112
+ semver("1.4.0") # True
113
+ ipv4("10.0.0.1") # True
114
+ ipv4("999.1.1.1") # False — the octet range is enforced
115
+
116
+ They are assembled from 83 named fragments you can build with too, so a pattern
117
+ of your own inherits the same range checks rather than approximating them:
118
+
119
+ .. code-block:: python
120
+
121
+ from edify import Pattern, atoms
122
+
123
+ endpoint = (
124
+ Pattern().start_of_input()
125
+ .named_capture("host").use(atoms.ipv4).end()
126
+ .char(":")
127
+ .named_capture("port").use(atoms.port).end()
128
+ .end_of_input()
129
+ )
130
+
131
+ endpoint.to_regex().match("10.0.0.1:8080").groupdict()
132
+ # {'host': '10.0.0.1', 'port': '8080'}
133
+ endpoint("10.0.0.1:99999") # False — 99999 is not a port
134
+
135
+ Ask a pattern what it means
136
+ ===========================
137
+
138
+ Because Edify keeps the structure rather than a string, it can describe a
139
+ pattern back to you — in prose, as a diagram, or as an annotated verbose regex:
140
+
141
+ .. code-block:: python
142
+
143
+ from edify import RegexBuilder
144
+
145
+ year = RegexBuilder().start_of_input().exactly(4).digit().end_of_input()
146
+ print(year.to_regex().explain())
147
+
148
+ # - The text must start with exactly 4 digits (0-9).
149
+ #
150
+ # Text this pattern accepts:
151
+ # 1234
152
+
153
+ That same structure is what lets Edify warn you at build time about a pattern
154
+ shaped for catastrophic backtracking, and round-trip a pattern through JSON.
155
+
156
+ Install
157
+ =======
158
+
159
+ Edify requires **Python 3.11+**:
160
+
161
+ .. code-block:: bash
162
+
163
+ pip install edify
164
+
165
+ Optional extras add the alternate regex engine and the framework integrations:
166
+ ``edify[regex]``, ``edify[pydantic]``, ``edify[fastapi]``, ``edify[django]``, or
167
+ ``edify[all]``.
168
+
169
+ Also in the box
170
+ ===============
171
+
172
+ - **Introspection** — a plain-English explanation, an ASCII or rendered diagram,
173
+ or an annotated ``re.VERBOSE`` form of any pattern.
174
+ - **Serialization** — round-trip a pattern through a dict or JSON and keep a
175
+ first-class pattern on the other side, not a flattened string.
176
+ - **Integrations** — pydantic, FastAPI, and Django validators from a pattern.
177
+ - **Testing helpers** — assert a pattern's contract beside its definition, and
178
+ snapshot what it emits.
179
+ - **Reverse parsing** — turn an existing regex string back into a chain and read
180
+ what it does.
181
+
182
+ Documentation
183
+ =============
184
+
185
+ `edify.readthedocs.io <https://edify.readthedocs.io>`_ has the guide, a page for
186
+ every validator, and the full API reference. Examples throughout the site are
187
+ live — edit the chain and the emitted regex and match results update as you
188
+ type, with Edify running in your browser.
189
+
190
+ License and contributing
191
+ ========================
192
+
193
+ Edify is released under the `MIT License
194
+ <https://github.com/luciferreeves/edify/blob/main/LICENSE>`_. Contributions are
195
+ welcome — see `CONTRIBUTING.rst
196
+ <https://github.com/luciferreeves/edify/blob/main/CONTRIBUTING.rst>`_ to get set up.
edify-1.0.0/README.rst ADDED
@@ -0,0 +1,152 @@
1
+ =====
2
+ Edify
3
+ =====
4
+
5
+ .. image:: https://raw.githubusercontent.com/luciferreeves/edify/main/images/cover.png
6
+ :alt: Edify — simple regular expressions
7
+
8
+ |
9
+
10
+ **Edify builds regular expressions you can actually read.** It's a fluent,
11
+ immutable regex builder for Python: you describe a pattern step by step in plain
12
+ English, and Edify hands you a compiled regex — one your teammates can review in
13
+ a pull request instead of squinting at.
14
+
15
+ Why Edify
16
+ =========
17
+
18
+ A regular expression is easy to write and hard to read. Six months later nobody
19
+ remembers what ``^(?:0x)?([0-9a-fA-F]{4})$`` was meant to accept, and the person
20
+ reviewing the change that touches it has no way to be sure either. The syntax
21
+ gives you nowhere to put a name, a comment, or a seam.
22
+
23
+ Edify moves the pattern into ordinary Python, where all three fit:
24
+
25
+ - Methods say what they do. ``.one_or_more().digit()`` needs no decoding.
26
+ - The quantity comes before the thing it counts, the way you say it aloud —
27
+ ``.exactly(4).digit()`` is *exactly four digits*.
28
+ - Every call returns a new builder, so a pattern you share can be extended in
29
+ two directions without either one disturbing the other.
30
+ - A mistake raises an error that points at the call that caused it and names the
31
+ fix, rather than emitting a regex that is subtly wrong.
32
+
33
+ A first pattern
34
+ ===============
35
+
36
+ .. code-block:: python
37
+
38
+ from edify import RegexBuilder
39
+
40
+ # A 16-bit hex literal like "0xC0DE" — with the four hex digits captured.
41
+ hex_literal = (
42
+ RegexBuilder()
43
+ .start_of_input()
44
+ .optional().string("0x")
45
+ .capture()
46
+ .exactly(4).any_of().range("0", "9").range("a", "f").range("A", "F").end()
47
+ .end()
48
+ .end_of_input()
49
+ )
50
+
51
+ hex_literal.to_regex_string() # '^(?:0x)?([0-9a-fA-F]{4})$'
52
+ hex_literal.test("0xC0DE") # True
53
+ hex_literal.test("0xZZZZ") # False
54
+
55
+ Read the chain top to bottom and it tells you what it accepts.
56
+
57
+ Patterns you don't have to write
58
+ ================================
59
+
60
+ Edify ships 228 ready-made validators. Each is a callable pattern, so checking a
61
+ value is a function call:
62
+
63
+ .. code-block:: python
64
+
65
+ from edify.library import email, ipv4, semver
66
+
67
+ email("a@b.com") # True
68
+ semver("1.4.0") # True
69
+ ipv4("10.0.0.1") # True
70
+ ipv4("999.1.1.1") # False — the octet range is enforced
71
+
72
+ They are assembled from 83 named fragments you can build with too, so a pattern
73
+ of your own inherits the same range checks rather than approximating them:
74
+
75
+ .. code-block:: python
76
+
77
+ from edify import Pattern, atoms
78
+
79
+ endpoint = (
80
+ Pattern().start_of_input()
81
+ .named_capture("host").use(atoms.ipv4).end()
82
+ .char(":")
83
+ .named_capture("port").use(atoms.port).end()
84
+ .end_of_input()
85
+ )
86
+
87
+ endpoint.to_regex().match("10.0.0.1:8080").groupdict()
88
+ # {'host': '10.0.0.1', 'port': '8080'}
89
+ endpoint("10.0.0.1:99999") # False — 99999 is not a port
90
+
91
+ Ask a pattern what it means
92
+ ===========================
93
+
94
+ Because Edify keeps the structure rather than a string, it can describe a
95
+ pattern back to you — in prose, as a diagram, or as an annotated verbose regex:
96
+
97
+ .. code-block:: python
98
+
99
+ from edify import RegexBuilder
100
+
101
+ year = RegexBuilder().start_of_input().exactly(4).digit().end_of_input()
102
+ print(year.to_regex().explain())
103
+
104
+ # - The text must start with exactly 4 digits (0-9).
105
+ #
106
+ # Text this pattern accepts:
107
+ # 1234
108
+
109
+ That same structure is what lets Edify warn you at build time about a pattern
110
+ shaped for catastrophic backtracking, and round-trip a pattern through JSON.
111
+
112
+ Install
113
+ =======
114
+
115
+ Edify requires **Python 3.11+**:
116
+
117
+ .. code-block:: bash
118
+
119
+ pip install edify
120
+
121
+ Optional extras add the alternate regex engine and the framework integrations:
122
+ ``edify[regex]``, ``edify[pydantic]``, ``edify[fastapi]``, ``edify[django]``, or
123
+ ``edify[all]``.
124
+
125
+ Also in the box
126
+ ===============
127
+
128
+ - **Introspection** — a plain-English explanation, an ASCII or rendered diagram,
129
+ or an annotated ``re.VERBOSE`` form of any pattern.
130
+ - **Serialization** — round-trip a pattern through a dict or JSON and keep a
131
+ first-class pattern on the other side, not a flattened string.
132
+ - **Integrations** — pydantic, FastAPI, and Django validators from a pattern.
133
+ - **Testing helpers** — assert a pattern's contract beside its definition, and
134
+ snapshot what it emits.
135
+ - **Reverse parsing** — turn an existing regex string back into a chain and read
136
+ what it does.
137
+
138
+ Documentation
139
+ =============
140
+
141
+ `edify.readthedocs.io <https://edify.readthedocs.io>`_ has the guide, a page for
142
+ every validator, and the full API reference. Examples throughout the site are
143
+ live — edit the chain and the emitted regex and match results update as you
144
+ type, with Edify running in your browser.
145
+
146
+ License and contributing
147
+ ========================
148
+
149
+ Edify is released under the `MIT License
150
+ <https://github.com/luciferreeves/edify/blob/main/LICENSE>`_. Contributions are
151
+ welcome — see `CONTRIBUTING.rst
152
+ <https://github.com/luciferreeves/edify/blob/main/CONTRIBUTING.rst>`_ to get set up.
File without changes