edify 0.3.0__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 (1889) hide show
  1. edify-1.0.0/.gitignore +88 -0
  2. {edify-0.3.0 → edify-1.0.0}/CHANGELOG.rst +48 -0
  3. edify-1.0.0/CONTRIBUTING.rst +87 -0
  4. edify-1.0.0/LICENSE +21 -0
  5. edify-1.0.0/PKG-INFO +196 -0
  6. edify-1.0.0/README.rst +152 -0
  7. edify-1.0.0/docs/_ext/__init__.py +0 -0
  8. edify-1.0.0/docs/_ext/autolink.py +136 -0
  9. edify-1.0.0/docs/_ext/codelinks.py +106 -0
  10. edify-1.0.0/docs/_ext/playground.py +343 -0
  11. edify-1.0.0/docs/_ext/signatures.py +58 -0
  12. edify-1.0.0/docs/_static/.gitkeep +0 -0
  13. edify-1.0.0/docs/_theme/edify/api.html +60 -0
  14. edify-1.0.0/docs/_theme/edify/guide.html +19 -0
  15. edify-1.0.0/docs/_theme/edify/home.html +101 -0
  16. edify-1.0.0/docs/_theme/edify/layout.html +78 -0
  17. edify-1.0.0/docs/_theme/edify/library.html +19 -0
  18. edify-1.0.0/docs/_theme/edify/page.html +19 -0
  19. edify-1.0.0/docs/_theme/edify/static/css/api.css +123 -0
  20. edify-1.0.0/docs/_theme/edify/static/css/base.css +192 -0
  21. edify-1.0.0/docs/_theme/edify/static/css/content.css +129 -0
  22. edify-1.0.0/docs/_theme/edify/static/css/home.css +84 -0
  23. edify-1.0.0/docs/_theme/edify/static/css/playground.css +130 -0
  24. edify-1.0.0/docs/_theme/edify/static/css/syntax.css +52 -0
  25. edify-1.0.0/docs/_theme/edify/static/js/apipill.js +17 -0
  26. edify-1.0.0/docs/_theme/edify/static/js/edify-api.js +1 -0
  27. edify-1.0.0/docs/_theme/edify/static/js/links.js +9 -0
  28. edify-1.0.0/docs/_theme/edify/static/js/navscroll.js +17 -0
  29. edify-1.0.0/docs/_theme/edify/static/js/playground.js +262 -0
  30. edify-1.0.0/docs/_theme/edify/static/js/pyodide-runtime.js +115 -0
  31. edify-1.0.0/docs/_theme/edify/static/js/theme-toggle.js +10 -0
  32. edify-1.0.0/docs/_theme/edify/theme.conf +4 -0
  33. edify-1.0.0/docs/_theme/edify/wide.html +14 -0
  34. edify-1.0.0/docs/api/atoms.rst +1857 -0
  35. edify-1.0.0/docs/api/builder/anchors.rst +9 -0
  36. edify-1.0.0/docs/api/builder/assertions.rst +13 -0
  37. edify-1.0.0/docs/api/builder/captures.rst +13 -0
  38. edify-1.0.0/docs/api/builder/characters.rst +20 -0
  39. edify-1.0.0/docs/api/builder/classes.rst +40 -0
  40. edify-1.0.0/docs/api/builder/composition.rst +36 -0
  41. edify-1.0.0/docs/api/builder/flags.rst +17 -0
  42. edify-1.0.0/docs/api/builder/groups.rst +13 -0
  43. edify-1.0.0/docs/api/builder/index.rst +68 -0
  44. edify-1.0.0/docs/api/builder/matching.rst +16 -0
  45. edify-1.0.0/docs/api/builder/output.rst +9 -0
  46. edify-1.0.0/docs/api/builder/quantifiers.rst +28 -0
  47. edify-1.0.0/docs/api/constants.rst +199 -0
  48. edify-1.0.0/docs/api/errors.rst +176 -0
  49. edify-1.0.0/docs/api/factories.rst +49 -0
  50. edify-1.0.0/docs/api/index.rst +79 -0
  51. edify-1.0.0/docs/api/integrations.rst +52 -0
  52. edify-1.0.0/docs/api/introspection.rst +14 -0
  53. edify-1.0.0/docs/api/library/address.rst +1260 -0
  54. edify-1.0.0/docs/api/library/api.rst +592 -0
  55. edify-1.0.0/docs/api/library/auth.rst +604 -0
  56. edify-1.0.0/docs/api/library/color.rst +304 -0
  57. edify-1.0.0/docs/api/library/contact.rst +682 -0
  58. edify-1.0.0/docs/api/library/data.rst +565 -0
  59. edify-1.0.0/docs/api/library/document.rst +338 -0
  60. edify-1.0.0/docs/api/library/financial.rst +253 -0
  61. edify-1.0.0/docs/api/library/geo.rst +536 -0
  62. edify-1.0.0/docs/api/library/grammar.rst +216 -0
  63. edify-1.0.0/docs/api/library/identifier.rst +825 -0
  64. edify-1.0.0/docs/api/library/index.rst +121 -0
  65. edify-1.0.0/docs/api/library/media.rst +0 -0
  66. edify-1.0.0/docs/api/library/medical.rst +169 -0
  67. edify-1.0.0/docs/api/library/numeric.rst +363 -0
  68. edify-1.0.0/docs/api/library/product.rst +96 -0
  69. edify-1.0.0/docs/api/library/publishing.rst +207 -0
  70. edify-1.0.0/docs/api/library/security.rst +0 -0
  71. edify-1.0.0/docs/api/library/software.rst +747 -0
  72. edify-1.0.0/docs/api/library/temporal.rst +594 -0
  73. edify-1.0.0/docs/api/library/text.rst +0 -0
  74. edify-1.0.0/docs/api/library/transport.rst +129 -0
  75. edify-1.0.0/docs/api/library/web.rst +546 -0
  76. edify-1.0.0/docs/api/results.rst +25 -0
  77. edify-1.0.0/docs/api/serialization.rst +35 -0
  78. edify-1.0.0/docs/api/testing.rst +29 -0
  79. edify-1.0.0/docs/api/types.rst +93 -0
  80. edify-1.0.0/docs/conf.py +76 -0
  81. edify-1.0.0/docs/deprecation-policy.rst +49 -0
  82. edify-1.0.0/docs/guide/atoms/datetime.rst +153 -0
  83. edify-1.0.0/docs/guide/atoms/encodings.rst +136 -0
  84. edify-1.0.0/docs/guide/atoms/finance.rst +88 -0
  85. edify-1.0.0/docs/guide/atoms/grouping.rst +88 -0
  86. edify-1.0.0/docs/guide/atoms/index.rst +349 -0
  87. edify-1.0.0/docs/guide/atoms/network.rst +180 -0
  88. edify-1.0.0/docs/guide/atoms/numbers.rst +160 -0
  89. edify-1.0.0/docs/guide/atoms/text.rst +196 -0
  90. edify-1.0.0/docs/guide/atoms/web.rst +111 -0
  91. edify-1.0.0/docs/guide/beyond/composing.rst +221 -0
  92. edify-1.0.0/docs/guide/beyond/errors.rst +193 -0
  93. edify-1.0.0/docs/guide/beyond/from-regex.rst +174 -0
  94. edify-1.0.0/docs/guide/beyond/index.rst +26 -0
  95. edify-1.0.0/docs/guide/beyond/integrations.rst +208 -0
  96. edify-1.0.0/docs/guide/beyond/matching.rst +292 -0
  97. edify-1.0.0/docs/guide/beyond/seeing.rst +252 -0
  98. edify-1.0.0/docs/guide/beyond/serialization.rst +171 -0
  99. edify-1.0.0/docs/guide/beyond/testing.rst +175 -0
  100. edify-1.0.0/docs/guide/builder/anchors.rst +193 -0
  101. edify-1.0.0/docs/guide/builder/captures.rst +247 -0
  102. edify-1.0.0/docs/guide/builder/characters.rst +266 -0
  103. edify-1.0.0/docs/guide/builder/flags.rst +236 -0
  104. edify-1.0.0/docs/guide/builder/groups.rst +223 -0
  105. edify-1.0.0/docs/guide/builder/index.rst +27 -0
  106. edify-1.0.0/docs/guide/builder/lookaround.rst +235 -0
  107. edify-1.0.0/docs/guide/builder/quantifiers.rst +250 -0
  108. edify-1.0.0/docs/guide/index.rst +79 -0
  109. edify-1.0.0/docs/guide/practice/debugging.rst +203 -0
  110. edify-1.0.0/docs/guide/practice/index.rst +21 -0
  111. edify-1.0.0/docs/guide/practice/performance.rst +166 -0
  112. edify-1.0.0/docs/guide/practice/recipes.rst +192 -0
  113. edify-1.0.0/docs/guide/practice/unicode.rst +229 -0
  114. edify-1.0.0/docs/guide/start/getting-started.rst +151 -0
  115. edify-1.0.0/docs/guide/start/index.rst +15 -0
  116. edify-1.0.0/docs/guide/start/thinking-in-edify.rst +182 -0
  117. edify-1.0.0/docs/index.rst +25 -0
  118. edify-1.0.0/docs/library/address/cidr.rst +51 -0
  119. edify-1.0.0/docs/library/address/domain.rst +59 -0
  120. edify-1.0.0/docs/library/address/hostname.rst +61 -0
  121. edify-1.0.0/docs/library/address/index.rst +59 -0
  122. edify-1.0.0/docs/library/address/ip.rst +50 -0
  123. edify-1.0.0/docs/library/address/ipv4.rst +57 -0
  124. edify-1.0.0/docs/library/address/ipv6.rst +136 -0
  125. edify-1.0.0/docs/library/address/path.rst +49 -0
  126. edify-1.0.0/docs/library/address/port.rst +59 -0
  127. edify-1.0.0/docs/library/address/ptr.rst +42 -0
  128. edify-1.0.0/docs/library/address/socket.rst +56 -0
  129. edify-1.0.0/docs/library/address/subdomain.rst +58 -0
  130. edify-1.0.0/docs/library/address/subnet.rst +50 -0
  131. edify-1.0.0/docs/library/address/tld.rst +56 -0
  132. edify-1.0.0/docs/library/address/uri.rst +58 -0
  133. edify-1.0.0/docs/library/address/url.rst +59 -0
  134. edify-1.0.0/docs/library/address/zip_code.rst +42 -0
  135. edify-1.0.0/docs/library/api/atom.rst +46 -0
  136. edify-1.0.0/docs/library/api/graphql.rst +61 -0
  137. edify-1.0.0/docs/library/api/hal.rst +60 -0
  138. edify-1.0.0/docs/library/api/index.rst +57 -0
  139. edify-1.0.0/docs/library/api/jsonapi.rst +61 -0
  140. edify-1.0.0/docs/library/api/oauth.rst +61 -0
  141. edify-1.0.0/docs/library/api/openapi.rst +61 -0
  142. edify-1.0.0/docs/library/api/openid.rst +60 -0
  143. edify-1.0.0/docs/library/api/rss.rst +44 -0
  144. edify-1.0.0/docs/library/api/saml.rst +58 -0
  145. edify-1.0.0/docs/library/api/soap.rst +57 -0
  146. edify-1.0.0/docs/library/api/swagger.rst +46 -0
  147. edify-1.0.0/docs/library/api/webhook.rst +48 -0
  148. edify-1.0.0/docs/library/auth/apikey.rst +61 -0
  149. edify-1.0.0/docs/library/auth/bearer.rst +45 -0
  150. edify-1.0.0/docs/library/auth/challenge.rst +51 -0
  151. edify-1.0.0/docs/library/auth/csrf.rst +58 -0
  152. edify-1.0.0/docs/library/auth/hmac.rst +58 -0
  153. edify-1.0.0/docs/library/auth/index.rst +67 -0
  154. edify-1.0.0/docs/library/auth/jwt.rst +61 -0
  155. edify-1.0.0/docs/library/auth/mfa.rst +47 -0
  156. edify-1.0.0/docs/library/auth/mnemonic.rst +58 -0
  157. edify-1.0.0/docs/library/auth/otp.rst +60 -0
  158. edify-1.0.0/docs/library/auth/passkey.rst +51 -0
  159. edify-1.0.0/docs/library/auth/password.rst +63 -0
  160. edify-1.0.0/docs/library/auth/pin.rst +43 -0
  161. edify-1.0.0/docs/library/auth/refresh.rst +56 -0
  162. edify-1.0.0/docs/library/auth/secret.rst +43 -0
  163. edify-1.0.0/docs/library/auth/session.rst +60 -0
  164. edify-1.0.0/docs/library/auth/signing.rst +56 -0
  165. edify-1.0.0/docs/library/auth/sso.rst +54 -0
  166. edify-1.0.0/docs/library/auth/token.rst +59 -0
  167. edify-1.0.0/docs/library/auth/webauthn.rst +56 -0
  168. edify-1.0.0/docs/library/color/color.rst +61 -0
  169. edify-1.0.0/docs/library/color/filter.rst +58 -0
  170. edify-1.0.0/docs/library/color/gradient.rst +56 -0
  171. edify-1.0.0/docs/library/color/index.rst +36 -0
  172. edify-1.0.0/docs/library/color/palette.rst +55 -0
  173. edify-1.0.0/docs/library/color/swatch.rst +40 -0
  174. edify-1.0.0/docs/library/contact/address.rst +45 -0
  175. edify-1.0.0/docs/library/contact/email.rst +57 -0
  176. edify-1.0.0/docs/library/contact/email_rfc_5322.rst +57 -0
  177. edify-1.0.0/docs/library/contact/fax.rst +39 -0
  178. edify-1.0.0/docs/library/contact/handle.rst +53 -0
  179. edify-1.0.0/docs/library/contact/index.rst +44 -0
  180. edify-1.0.0/docs/library/contact/pager.rst +36 -0
  181. edify-1.0.0/docs/library/contact/phone.rst +59 -0
  182. edify-1.0.0/docs/library/contact/username.rst +61 -0
  183. edify-1.0.0/docs/library/data/avro.rst +43 -0
  184. edify-1.0.0/docs/library/data/csv.rst +62 -0
  185. edify-1.0.0/docs/library/data/hdf5.rst +43 -0
  186. edify-1.0.0/docs/library/data/html.rst +57 -0
  187. edify-1.0.0/docs/library/data/index.rst +62 -0
  188. edify-1.0.0/docs/library/data/ini.rst +57 -0
  189. edify-1.0.0/docs/library/data/json.rst +66 -0
  190. edify-1.0.0/docs/library/data/msgpack.rst +58 -0
  191. edify-1.0.0/docs/library/data/orc.rst +37 -0
  192. edify-1.0.0/docs/library/data/parquet.rst +45 -0
  193. edify-1.0.0/docs/library/data/protobuf.rst +59 -0
  194. edify-1.0.0/docs/library/data/toml.rst +59 -0
  195. edify-1.0.0/docs/library/data/tsv.rst +58 -0
  196. edify-1.0.0/docs/library/data/xml.rst +61 -0
  197. edify-1.0.0/docs/library/data/yaml.rst +64 -0
  198. edify-1.0.0/docs/library/document/docx.rst +42 -0
  199. edify-1.0.0/docs/library/document/epub.rst +35 -0
  200. edify-1.0.0/docs/library/document/index.rst +54 -0
  201. edify-1.0.0/docs/library/document/mobi.rst +43 -0
  202. edify-1.0.0/docs/library/document/odt.rst +40 -0
  203. edify-1.0.0/docs/library/document/pdf.rst +44 -0
  204. edify-1.0.0/docs/library/document/pptx.rst +33 -0
  205. edify-1.0.0/docs/library/document/readme.rst +47 -0
  206. edify-1.0.0/docs/library/document/rtf.rst +38 -0
  207. edify-1.0.0/docs/library/document/svg.rst +40 -0
  208. edify-1.0.0/docs/library/document/tex.rst +42 -0
  209. edify-1.0.0/docs/library/document/xlsx.rst +36 -0
  210. edify-1.0.0/docs/library/financial/card.rst +42 -0
  211. edify-1.0.0/docs/library/financial/crypto.rst +42 -0
  212. edify-1.0.0/docs/library/financial/currency.rst +39 -0
  213. edify-1.0.0/docs/library/financial/index.rst +46 -0
  214. edify-1.0.0/docs/library/financial/routing.rst +38 -0
  215. edify-1.0.0/docs/library/financial/sortcode.rst +39 -0
  216. edify-1.0.0/docs/library/financial/vat.rst +41 -0
  217. edify-1.0.0/docs/library/financial/wallet.rst +51 -0
  218. edify-1.0.0/docs/library/geo/altitude.rst +40 -0
  219. edify-1.0.0/docs/library/geo/bearing.rst +42 -0
  220. edify-1.0.0/docs/library/geo/coordinate.rst +54 -0
  221. edify-1.0.0/docs/library/geo/geohash.rst +42 -0
  222. edify-1.0.0/docs/library/geo/index.rst +44 -0
  223. edify-1.0.0/docs/library/geo/mgrs.rst +43 -0
  224. edify-1.0.0/docs/library/geo/place.rst +42 -0
  225. edify-1.0.0/docs/library/geo/plus.rst +51 -0
  226. edify-1.0.0/docs/library/geo/postal.rst +44 -0
  227. edify-1.0.0/docs/library/grammar/abnf.rst +42 -0
  228. edify-1.0.0/docs/library/grammar/antlr.rst +40 -0
  229. edify-1.0.0/docs/library/grammar/bnf.rst +42 -0
  230. edify-1.0.0/docs/library/grammar/ebnf.rst +41 -0
  231. edify-1.0.0/docs/library/grammar/index.rst +42 -0
  232. edify-1.0.0/docs/library/grammar/peg.rst +41 -0
  233. edify-1.0.0/docs/library/grammar/pest.rst +43 -0
  234. edify-1.0.0/docs/library/identifier/arn.rst +43 -0
  235. edify-1.0.0/docs/library/identifier/asin.rst +38 -0
  236. edify-1.0.0/docs/library/identifier/bic.rst +43 -0
  237. edify-1.0.0/docs/library/identifier/cusip.rst +38 -0
  238. edify-1.0.0/docs/library/identifier/did.rst +42 -0
  239. edify-1.0.0/docs/library/identifier/ein.rst +42 -0
  240. edify-1.0.0/docs/library/identifier/guid.rst +48 -0
  241. edify-1.0.0/docs/library/identifier/iata.rst +41 -0
  242. edify-1.0.0/docs/library/identifier/iban.rst +44 -0
  243. edify-1.0.0/docs/library/identifier/icao.rst +41 -0
  244. edify-1.0.0/docs/library/identifier/iccid.rst +38 -0
  245. edify-1.0.0/docs/library/identifier/imei.rst +38 -0
  246. edify-1.0.0/docs/library/identifier/imo.rst +39 -0
  247. edify-1.0.0/docs/library/identifier/index.rst +87 -0
  248. edify-1.0.0/docs/library/identifier/isin.rst +41 -0
  249. edify-1.0.0/docs/library/identifier/itin.rst +51 -0
  250. edify-1.0.0/docs/library/identifier/lei.rst +40 -0
  251. edify-1.0.0/docs/library/identifier/mac.rst +40 -0
  252. edify-1.0.0/docs/library/identifier/meid.rst +37 -0
  253. edify-1.0.0/docs/library/identifier/mmsi.rst +39 -0
  254. edify-1.0.0/docs/library/identifier/orcid.rst +40 -0
  255. edify-1.0.0/docs/library/identifier/sedol.rst +38 -0
  256. edify-1.0.0/docs/library/identifier/sku.rst +41 -0
  257. edify-1.0.0/docs/library/identifier/ssn.rst +54 -0
  258. edify-1.0.0/docs/library/identifier/tin.rst +40 -0
  259. edify-1.0.0/docs/library/identifier/uuid.rst +53 -0
  260. edify-1.0.0/docs/library/identifier/vin.rst +53 -0
  261. edify-1.0.0/docs/library/index.rst +78 -0
  262. edify-1.0.0/docs/library/media/charset.rst +42 -0
  263. edify-1.0.0/docs/library/media/codec.rst +42 -0
  264. edify-1.0.0/docs/library/media/encoding.rst +55 -0
  265. edify-1.0.0/docs/library/media/extension.rst +40 -0
  266. edify-1.0.0/docs/library/media/favicon.rst +39 -0
  267. edify-1.0.0/docs/library/media/filename.rst +46 -0
  268. edify-1.0.0/docs/library/media/glob.rst +42 -0
  269. edify-1.0.0/docs/library/media/index.rst +49 -0
  270. edify-1.0.0/docs/library/media/locale.rst +55 -0
  271. edify-1.0.0/docs/library/media/mimetype.rst +43 -0
  272. edify-1.0.0/docs/library/media/regex.rst +43 -0
  273. edify-1.0.0/docs/library/media/shebang.rst +42 -0
  274. edify-1.0.0/docs/library/medical/blood.rst +41 -0
  275. edify-1.0.0/docs/library/medical/dicom.rst +40 -0
  276. edify-1.0.0/docs/library/medical/dosage.rst +52 -0
  277. edify-1.0.0/docs/library/medical/index.rst +37 -0
  278. edify-1.0.0/docs/library/medical/medical.rst +50 -0
  279. edify-1.0.0/docs/library/numeric/fraction.rst +53 -0
  280. edify-1.0.0/docs/library/numeric/hash.rst +54 -0
  281. edify-1.0.0/docs/library/numeric/index.rst +47 -0
  282. edify-1.0.0/docs/library/numeric/integer.rst +43 -0
  283. edify-1.0.0/docs/library/numeric/natural.rst +51 -0
  284. edify-1.0.0/docs/library/numeric/number.rst +57 -0
  285. edify-1.0.0/docs/library/numeric/ordinal.rst +57 -0
  286. edify-1.0.0/docs/library/numeric/percentage.rst +55 -0
  287. edify-1.0.0/docs/library/numeric/ratio.rst +43 -0
  288. edify-1.0.0/docs/library/numeric/roman.rst +56 -0
  289. edify-1.0.0/docs/library/numeric/scientific.rst +44 -0
  290. edify-1.0.0/docs/library/product/barcode.rst +39 -0
  291. edify-1.0.0/docs/library/product/gtin.rst +43 -0
  292. edify-1.0.0/docs/library/product/index.rst +31 -0
  293. edify-1.0.0/docs/library/product/mpn.rst +43 -0
  294. edify-1.0.0/docs/library/publishing/arxiv.rst +49 -0
  295. edify-1.0.0/docs/library/publishing/doi.rst +42 -0
  296. edify-1.0.0/docs/library/publishing/index.rst +35 -0
  297. edify-1.0.0/docs/library/publishing/isbn.rst +44 -0
  298. edify-1.0.0/docs/library/publishing/issn.rst +45 -0
  299. edify-1.0.0/docs/library/publishing/pmc.rst +37 -0
  300. edify-1.0.0/docs/library/publishing/pmid.rst +38 -0
  301. edify-1.0.0/docs/library/security/age.rst +40 -0
  302. edify-1.0.0/docs/library/security/certificate.rst +41 -0
  303. edify-1.0.0/docs/library/security/csr.rst +40 -0
  304. edify-1.0.0/docs/library/security/der.rst +42 -0
  305. edify-1.0.0/docs/library/security/index.rst +52 -0
  306. edify-1.0.0/docs/library/security/keyring.rst +40 -0
  307. edify-1.0.0/docs/library/security/nonce.rst +42 -0
  308. edify-1.0.0/docs/library/security/pem.rst +44 -0
  309. edify-1.0.0/docs/library/security/pgp.rst +41 -0
  310. edify-1.0.0/docs/library/security/signature.rst +42 -0
  311. edify-1.0.0/docs/library/security/ssh.rst +57 -0
  312. edify-1.0.0/docs/library/security/x509.rst +39 -0
  313. edify-1.0.0/docs/library/software/bump.rst +48 -0
  314. edify-1.0.0/docs/library/software/cargo.rst +50 -0
  315. edify-1.0.0/docs/library/software/checksum.rst +40 -0
  316. edify-1.0.0/docs/library/software/component.rst +40 -0
  317. edify-1.0.0/docs/library/software/digest.rst +42 -0
  318. edify-1.0.0/docs/library/software/docker.rst +40 -0
  319. edify-1.0.0/docs/library/software/git.rst +41 -0
  320. edify-1.0.0/docs/library/software/image.rst +38 -0
  321. edify-1.0.0/docs/library/software/index.rst +58 -0
  322. edify-1.0.0/docs/library/software/makefile.rst +42 -0
  323. edify-1.0.0/docs/library/software/package.rst +41 -0
  324. edify-1.0.0/docs/library/software/ref.rst +56 -0
  325. edify-1.0.0/docs/library/software/semver.rst +58 -0
  326. edify-1.0.0/docs/library/software/version.rst +55 -0
  327. edify-1.0.0/docs/library/temporal/cron.rst +55 -0
  328. edify-1.0.0/docs/library/temporal/date.rst +43 -0
  329. edify-1.0.0/docs/library/temporal/datetime.rst +50 -0
  330. edify-1.0.0/docs/library/temporal/duration.rst +56 -0
  331. edify-1.0.0/docs/library/temporal/epoch.rst +44 -0
  332. edify-1.0.0/docs/library/temporal/index.rst +59 -0
  333. edify-1.0.0/docs/library/temporal/interval.rst +50 -0
  334. edify-1.0.0/docs/library/temporal/iso_date.rst +55 -0
  335. edify-1.0.0/docs/library/temporal/offset.rst +51 -0
  336. edify-1.0.0/docs/library/temporal/time.rst +54 -0
  337. edify-1.0.0/docs/library/temporal/timestamp.rst +41 -0
  338. edify-1.0.0/docs/library/temporal/timezone.rst +57 -0
  339. edify-1.0.0/docs/library/temporal/year.rst +39 -0
  340. edify-1.0.0/docs/library/text/alpha.rst +45 -0
  341. edify-1.0.0/docs/library/text/alphanumeric.rst +45 -0
  342. edify-1.0.0/docs/library/text/ascii.rst +46 -0
  343. edify-1.0.0/docs/library/text/base.rst +57 -0
  344. edify-1.0.0/docs/library/text/emoji.rst +43 -0
  345. edify-1.0.0/docs/library/text/index.rst +54 -0
  346. edify-1.0.0/docs/library/text/numeric.rst +44 -0
  347. edify-1.0.0/docs/library/text/printable.rst +46 -0
  348. edify-1.0.0/docs/library/text/script.rst +53 -0
  349. edify-1.0.0/docs/library/text/slug.rst +57 -0
  350. edify-1.0.0/docs/library/text/unicode.rst +53 -0
  351. edify-1.0.0/docs/library/text/word.rst +55 -0
  352. edify-1.0.0/docs/library/transport/aircraft.rst +41 -0
  353. edify-1.0.0/docs/library/transport/flight.rst +43 -0
  354. edify-1.0.0/docs/library/transport/index.rst +33 -0
  355. edify-1.0.0/docs/library/transport/plate.rst +41 -0
  356. edify-1.0.0/docs/library/transport/vehicle.rst +40 -0
  357. edify-1.0.0/docs/library/web/apache.rst +51 -0
  358. edify-1.0.0/docs/library/web/captcha.rst +38 -0
  359. edify-1.0.0/docs/library/web/cookie.rst +44 -0
  360. edify-1.0.0/docs/library/web/csp.rst +44 -0
  361. edify-1.0.0/docs/library/web/htaccess.rst +50 -0
  362. edify-1.0.0/docs/library/web/humans.rst +39 -0
  363. edify-1.0.0/docs/library/web/index.rst +47 -0
  364. edify-1.0.0/docs/library/web/manifest.rst +41 -0
  365. edify-1.0.0/docs/library/web/nginx.rst +50 -0
  366. edify-1.0.0/docs/library/web/robots.rst +43 -0
  367. edify-1.0.0/docs/library/web/sitemap.rst +38 -0
  368. edify-1.0.0/docs/library/web/useragent.rst +45 -0
  369. edify-1.0.0/docs/playground.rst +17 -0
  370. edify-1.0.0/docs/requirements.txt +1 -0
  371. edify-1.0.0/docs/upgrading/0.3-to-1.0.rst +161 -0
  372. edify-1.0.0/docs/upgrading/index.rst +12 -0
  373. edify-1.0.0/edify/__init__.py +121 -0
  374. edify-1.0.0/edify/atoms/__init__.py +169 -0
  375. edify-1.0.0/edify/atoms/alnum.py +8 -0
  376. edify-1.0.0/edify/atoms/ascii.py +8 -0
  377. edify-1.0.0/edify/atoms/base32.py +10 -0
  378. edify-1.0.0/edify/atoms/base58.py +19 -0
  379. edify-1.0.0/edify/atoms/base64.py +20 -0
  380. edify-1.0.0/edify/atoms/base64url.py +18 -0
  381. edify-1.0.0/edify/atoms/bic.py +27 -0
  382. edify-1.0.0/edify/atoms/binnum.py +8 -0
  383. edify-1.0.0/edify/atoms/boolean.py +29 -0
  384. edify-1.0.0/edify/atoms/braces.py +8 -0
  385. edify-1.0.0/edify/atoms/brackets.py +8 -0
  386. edify-1.0.0/edify/atoms/cidr.py +9 -0
  387. edify-1.0.0/edify/atoms/clock.py +23 -0
  388. edify-1.0.0/edify/atoms/clock12.py +27 -0
  389. edify-1.0.0/edify/atoms/creditcard.py +8 -0
  390. edify-1.0.0/edify/atoms/currency.py +8 -0
  391. edify-1.0.0/edify/atoms/day.py +12 -0
  392. edify-1.0.0/edify/atoms/decimal.py +8 -0
  393. edify-1.0.0/edify/atoms/duration.py +47 -0
  394. edify-1.0.0/edify/atoms/email.py +29 -0
  395. edify-1.0.0/edify/atoms/epoch.py +8 -0
  396. edify-1.0.0/edify/atoms/extension.py +8 -0
  397. edify-1.0.0/edify/atoms/filename.py +8 -0
  398. edify-1.0.0/edify/atoms/filepath.py +30 -0
  399. edify-1.0.0/edify/atoms/floatnum.py +28 -0
  400. edify-1.0.0/edify/atoms/guid.py +25 -0
  401. edify-1.0.0/edify/atoms/hexcolor.py +22 -0
  402. edify-1.0.0/edify/atoms/hexnum.py +9 -0
  403. edify-1.0.0/edify/atoms/hexstring.py +9 -0
  404. edify-1.0.0/edify/atoms/hostname.py +9 -0
  405. edify-1.0.0/edify/atoms/httpmethod.py +18 -0
  406. edify-1.0.0/edify/atoms/httpstatus.py +8 -0
  407. edify-1.0.0/edify/atoms/iban.py +19 -0
  408. edify-1.0.0/edify/atoms/integer.py +8 -0
  409. edify-1.0.0/edify/atoms/ipv4.py +9 -0
  410. edify-1.0.0/edify/atoms/ipv6.py +21 -0
  411. edify-1.0.0/edify/atoms/isodate.py +8 -0
  412. edify-1.0.0/edify/atoms/isodatetime.py +45 -0
  413. edify-1.0.0/edify/atoms/label.py +32 -0
  414. edify-1.0.0/edify/atoms/letter.py +8 -0
  415. edify-1.0.0/edify/atoms/line.py +8 -0
  416. edify-1.0.0/edify/atoms/localpart.py +36 -0
  417. edify-1.0.0/edify/atoms/lower.py +8 -0
  418. edify-1.0.0/edify/atoms/mac.py +19 -0
  419. edify-1.0.0/edify/atoms/md5.py +9 -0
  420. edify-1.0.0/edify/atoms/mimetype.py +25 -0
  421. edify-1.0.0/edify/atoms/money.py +13 -0
  422. edify-1.0.0/edify/atoms/month.py +11 -0
  423. edify-1.0.0/edify/atoms/natural.py +8 -0
  424. edify-1.0.0/edify/atoms/nibble.py +8 -0
  425. edify-1.0.0/edify/atoms/objectid.py +9 -0
  426. edify-1.0.0/edify/atoms/octet.py +14 -0
  427. edify-1.0.0/edify/atoms/octnum.py +8 -0
  428. edify-1.0.0/edify/atoms/oid.py +8 -0
  429. edify-1.0.0/edify/atoms/parens.py +8 -0
  430. edify-1.0.0/edify/atoms/percent.py +19 -0
  431. edify-1.0.0/edify/atoms/port.py +16 -0
  432. edify-1.0.0/edify/atoms/printable.py +8 -0
  433. edify-1.0.0/edify/atoms/protocol.py +18 -0
  434. edify-1.0.0/edify/atoms/quoted.py +8 -0
  435. edify-1.0.0/edify/atoms/ratio.py +8 -0
  436. edify-1.0.0/edify/atoms/rgbcolor.py +27 -0
  437. edify-1.0.0/edify/atoms/scheme.py +20 -0
  438. edify-1.0.0/edify/atoms/scientific.py +25 -0
  439. edify-1.0.0/edify/atoms/semver.py +16 -0
  440. edify-1.0.0/edify/atoms/sha256.py +9 -0
  441. edify-1.0.0/edify/atoms/signed.py +8 -0
  442. edify-1.0.0/edify/atoms/slug.py +24 -0
  443. edify-1.0.0/edify/atoms/space.py +8 -0
  444. edify-1.0.0/edify/atoms/timezone.py +11 -0
  445. edify-1.0.0/edify/atoms/tld.py +8 -0
  446. edify-1.0.0/edify/atoms/truefalse.py +15 -0
  447. edify-1.0.0/edify/atoms/ulid.py +20 -0
  448. edify-1.0.0/edify/atoms/unsigned.py +8 -0
  449. edify-1.0.0/edify/atoms/upper.py +8 -0
  450. edify-1.0.0/edify/atoms/uri.py +23 -0
  451. edify-1.0.0/edify/atoms/url.py +16 -0
  452. edify-1.0.0/edify/atoms/username.py +19 -0
  453. edify-1.0.0/edify/atoms/uuid.py +27 -0
  454. edify-1.0.0/edify/atoms/weekday.py +23 -0
  455. edify-1.0.0/edify/atoms/word.py +8 -0
  456. edify-1.0.0/edify/atoms/year.py +8 -0
  457. edify-1.0.0/edify/atoms/yesno.py +19 -0
  458. edify-1.0.0/edify/builder/__init__.py +3 -0
  459. edify-1.0.0/edify/builder/core.py +85 -0
  460. edify-1.0.0/edify/builder/diagnose.py +132 -0
  461. edify-1.0.0/edify/builder/fluent.py +61 -0
  462. edify-1.0.0/edify/builder/merge.py +291 -0
  463. edify-1.0.0/edify/builder/mixins/__init__.py +0 -0
  464. edify-1.0.0/edify/builder/mixins/anchors.py +40 -0
  465. edify-1.0.0/edify/builder/mixins/assertions.py +47 -0
  466. edify-1.0.0/edify/builder/mixins/captures.py +118 -0
  467. edify-1.0.0/edify/builder/mixins/chain.py +64 -0
  468. edify-1.0.0/edify/builder/mixins/chars.py +178 -0
  469. edify-1.0.0/edify/builder/mixins/classes.py +120 -0
  470. edify-1.0.0/edify/builder/mixins/flags.py +52 -0
  471. edify-1.0.0/edify/builder/mixins/groups.py +109 -0
  472. edify-1.0.0/edify/builder/mixins/matcher.py +134 -0
  473. edify-1.0.0/edify/builder/mixins/operators.py +40 -0
  474. edify-1.0.0/edify/builder/mixins/quantifiers.py +235 -0
  475. edify-1.0.0/edify/builder/mixins/subexpression.py +110 -0
  476. edify-1.0.0/edify/builder/mixins/terminals.py +149 -0
  477. edify-1.0.0/edify/builder/mixins/testing.py +69 -0
  478. edify-1.0.0/edify/builder/reverse.py +264 -0
  479. edify-1.0.0/edify/builder/sre.py +75 -0
  480. edify-1.0.0/edify/builder/types/__init__.py +0 -0
  481. edify-1.0.0/edify/builder/types/engine.py +8 -0
  482. edify-1.0.0/edify/builder/types/flags.py +67 -0
  483. edify-1.0.0/edify/builder/types/frame.py +72 -0
  484. edify-1.0.0/edify/builder/types/protocol.py +50 -0
  485. edify-1.0.0/edify/builder/types/state.py +123 -0
  486. edify-1.0.0/edify/compile/__init__.py +4 -0
  487. edify-1.0.0/edify/compile/backend.py +93 -0
  488. edify-1.0.0/edify/compile/captures.py +43 -0
  489. edify-1.0.0/edify/compile/chars.py +47 -0
  490. edify-1.0.0/edify/compile/dispatch.py +48 -0
  491. edify-1.0.0/edify/compile/escape.py +89 -0
  492. edify-1.0.0/edify/compile/fuse.py +62 -0
  493. edify-1.0.0/edify/compile/groups.py +88 -0
  494. edify-1.0.0/edify/compile/leaves.py +79 -0
  495. edify-1.0.0/edify/compile/quantifier/__init__.py +4 -0
  496. edify-1.0.0/edify/compile/quantifier/apply.py +43 -0
  497. edify-1.0.0/edify/compile/quantifier/suffix.py +56 -0
  498. edify-1.0.0/edify/compile/redos.py +91 -0
  499. edify-1.0.0/edify/compile/root.py +25 -0
  500. edify-1.0.0/edify/compile/types.py +17 -0
  501. edify-1.0.0/edify/elements/__init__.py +3 -0
  502. edify-1.0.0/edify/elements/types/__init__.py +4 -0
  503. edify-1.0.0/edify/elements/types/base.py +16 -0
  504. edify-1.0.0/edify/elements/types/captures.py +64 -0
  505. edify-1.0.0/edify/elements/types/chars.py +101 -0
  506. edify-1.0.0/edify/elements/types/groups.py +98 -0
  507. edify-1.0.0/edify/elements/types/leaves.py +113 -0
  508. edify-1.0.0/edify/elements/types/quantifiers.py +152 -0
  509. edify-1.0.0/edify/elements/types/root.py +25 -0
  510. edify-1.0.0/edify/elements/types/union.py +166 -0
  511. edify-1.0.0/edify/elements/walk.py +42 -0
  512. edify-1.0.0/edify/errors/__init__.py +4 -0
  513. edify-1.0.0/edify/errors/anchors.py +78 -0
  514. edify-1.0.0/edify/errors/backend.py +63 -0
  515. edify-1.0.0/edify/errors/base.py +12 -0
  516. edify-1.0.0/edify/errors/captures.py +37 -0
  517. edify-1.0.0/edify/errors/comparison.py +66 -0
  518. edify-1.0.0/edify/errors/context.py +91 -0
  519. edify-1.0.0/edify/errors/formatting.py +133 -0
  520. edify-1.0.0/edify/errors/input.py +248 -0
  521. edify-1.0.0/edify/errors/integration.py +24 -0
  522. edify-1.0.0/edify/errors/introspect.py +91 -0
  523. edify-1.0.0/edify/errors/naming.py +74 -0
  524. edify-1.0.0/edify/errors/quantifier.py +84 -0
  525. edify-1.0.0/edify/errors/serialize.py +103 -0
  526. edify-1.0.0/edify/errors/structure.py +86 -0
  527. edify-1.0.0/edify/errors/syntax.py +20 -0
  528. edify-1.0.0/edify/errors/testing.py +57 -0
  529. edify-1.0.0/edify/integrations/__init__.py +0 -0
  530. edify-1.0.0/edify/integrations/django.py +51 -0
  531. edify-1.0.0/edify/integrations/fastapi.py +44 -0
  532. edify-1.0.0/edify/integrations/pydantic.py +44 -0
  533. edify-1.0.0/edify/introspect/__init__.py +5 -0
  534. edify-1.0.0/edify/introspect/ascii.py +448 -0
  535. edify-1.0.0/edify/introspect/explain.py +560 -0
  536. edify-1.0.0/edify/introspect/graphviz.py +279 -0
  537. edify-1.0.0/edify/introspect/types.py +48 -0
  538. edify-1.0.0/edify/introspect/verbose.py +369 -0
  539. edify-1.0.0/edify/introspect/visualize.py +45 -0
  540. edify-1.0.0/edify/library/__init__.py +463 -0
  541. edify-1.0.0/edify/library/_support/__init__.py +0 -0
  542. edify-1.0.0/edify/library/address/__init__.py +33 -0
  543. edify-1.0.0/edify/library/address/cidr.py +55 -0
  544. edify-1.0.0/edify/library/address/domain.py +32 -0
  545. edify-1.0.0/edify/library/address/hostname.py +42 -0
  546. edify-1.0.0/edify/library/address/ip.py +220 -0
  547. edify-1.0.0/edify/library/address/path.py +61 -0
  548. edify-1.0.0/edify/library/address/port.py +16 -0
  549. edify-1.0.0/edify/library/address/ptr.py +39 -0
  550. edify-1.0.0/edify/library/address/socket.py +63 -0
  551. edify-1.0.0/edify/library/address/subdomain.py +31 -0
  552. edify-1.0.0/edify/library/address/subnet.py +36 -0
  553. edify-1.0.0/edify/library/address/tld.py +17 -0
  554. edify-1.0.0/edify/library/address/uri.py +27 -0
  555. edify-1.0.0/edify/library/address/url.py +84 -0
  556. edify-1.0.0/edify/library/address/zip.py +30 -0
  557. edify-1.0.0/edify/library/api/__init__.py +27 -0
  558. edify-1.0.0/edify/library/api/atom.py +27 -0
  559. edify-1.0.0/edify/library/api/graphql.py +63 -0
  560. edify-1.0.0/edify/library/api/hal.py +34 -0
  561. edify-1.0.0/edify/library/api/jsonapi.py +35 -0
  562. edify-1.0.0/edify/library/api/oauth.py +32 -0
  563. edify-1.0.0/edify/library/api/openapi.py +66 -0
  564. edify-1.0.0/edify/library/api/openid.py +40 -0
  565. edify-1.0.0/edify/library/api/rss.py +28 -0
  566. edify-1.0.0/edify/library/api/saml.py +44 -0
  567. edify-1.0.0/edify/library/api/soap.py +32 -0
  568. edify-1.0.0/edify/library/api/swagger.py +53 -0
  569. edify-1.0.0/edify/library/api/webhook.py +43 -0
  570. edify-1.0.0/edify/library/auth/__init__.py +41 -0
  571. edify-1.0.0/edify/library/auth/apikey.py +19 -0
  572. edify-1.0.0/edify/library/auth/bearer.py +20 -0
  573. edify-1.0.0/edify/library/auth/challenge.py +21 -0
  574. edify-1.0.0/edify/library/auth/csrf.py +19 -0
  575. edify-1.0.0/edify/library/auth/hmac.py +18 -0
  576. edify-1.0.0/edify/library/auth/jwt.py +37 -0
  577. edify-1.0.0/edify/library/auth/mfa.py +8 -0
  578. edify-1.0.0/edify/library/auth/mnemonic.py +22 -0
  579. edify-1.0.0/edify/library/auth/otp.py +20 -0
  580. edify-1.0.0/edify/library/auth/passkey.py +21 -0
  581. edify-1.0.0/edify/library/auth/password.py +97 -0
  582. edify-1.0.0/edify/library/auth/pin.py +8 -0
  583. edify-1.0.0/edify/library/auth/refresh.py +21 -0
  584. edify-1.0.0/edify/library/auth/secret.py +19 -0
  585. edify-1.0.0/edify/library/auth/session.py +19 -0
  586. edify-1.0.0/edify/library/auth/signing.py +21 -0
  587. edify-1.0.0/edify/library/auth/sso.py +22 -0
  588. edify-1.0.0/edify/library/auth/token.py +19 -0
  589. edify-1.0.0/edify/library/auth/webauthn.py +19 -0
  590. edify-1.0.0/edify/library/color/__init__.py +7 -0
  591. edify-1.0.0/edify/library/color/any.py +128 -0
  592. edify-1.0.0/edify/library/color/filter.py +28 -0
  593. edify-1.0.0/edify/library/color/gradient.py +26 -0
  594. edify-1.0.0/edify/library/color/palette.py +46 -0
  595. edify-1.0.0/edify/library/color/swatch.py +25 -0
  596. edify-1.0.0/edify/library/contact/__init__.py +18 -0
  597. edify-1.0.0/edify/library/contact/address.py +26 -0
  598. edify-1.0.0/edify/library/contact/email.py +223 -0
  599. edify-1.0.0/edify/library/contact/fax.py +52 -0
  600. edify-1.0.0/edify/library/contact/handle.py +20 -0
  601. edify-1.0.0/edify/library/contact/pager.py +8 -0
  602. edify-1.0.0/edify/library/contact/phone.py +61 -0
  603. edify-1.0.0/edify/library/contact/username.py +27 -0
  604. edify-1.0.0/edify/library/data/__init__.py +31 -0
  605. edify-1.0.0/edify/library/data/avro.py +12 -0
  606. edify-1.0.0/edify/library/data/csv.py +33 -0
  607. edify-1.0.0/edify/library/data/hdf5.py +18 -0
  608. edify-1.0.0/edify/library/data/html.py +31 -0
  609. edify-1.0.0/edify/library/data/ini.py +42 -0
  610. edify-1.0.0/edify/library/data/json.py +54 -0
  611. edify-1.0.0/edify/library/data/msgpack.py +26 -0
  612. edify-1.0.0/edify/library/data/orc.py +8 -0
  613. edify-1.0.0/edify/library/data/parquet.py +10 -0
  614. edify-1.0.0/edify/library/data/protobuf.py +53 -0
  615. edify-1.0.0/edify/library/data/toml.py +54 -0
  616. edify-1.0.0/edify/library/data/tsv.py +27 -0
  617. edify-1.0.0/edify/library/data/xml.py +39 -0
  618. edify-1.0.0/edify/library/data/yaml.py +47 -0
  619. edify-1.0.0/edify/library/document/__init__.py +25 -0
  620. edify-1.0.0/edify/library/document/docx.py +21 -0
  621. edify-1.0.0/edify/library/document/epub.py +21 -0
  622. edify-1.0.0/edify/library/document/mobi.py +20 -0
  623. edify-1.0.0/edify/library/document/odt.py +21 -0
  624. edify-1.0.0/edify/library/document/pdf.py +19 -0
  625. edify-1.0.0/edify/library/document/pptx.py +21 -0
  626. edify-1.0.0/edify/library/document/readme.py +28 -0
  627. edify-1.0.0/edify/library/document/rtf.py +18 -0
  628. edify-1.0.0/edify/library/document/svg.py +30 -0
  629. edify-1.0.0/edify/library/document/tex.py +27 -0
  630. edify-1.0.0/edify/library/document/xlsx.py +21 -0
  631. edify-1.0.0/edify/library/financial/__init__.py +9 -0
  632. edify-1.0.0/edify/library/financial/card.py +28 -0
  633. edify-1.0.0/edify/library/financial/crypto.py +19 -0
  634. edify-1.0.0/edify/library/financial/currency.py +10 -0
  635. edify-1.0.0/edify/library/financial/routing.py +8 -0
  636. edify-1.0.0/edify/library/financial/sortcode.py +23 -0
  637. edify-1.0.0/edify/library/financial/vat.py +8 -0
  638. edify-1.0.0/edify/library/financial/wallet.py +94 -0
  639. edify-1.0.0/edify/library/geo/__init__.py +10 -0
  640. edify-1.0.0/edify/library/geo/altitude.py +26 -0
  641. edify-1.0.0/edify/library/geo/bearing.py +33 -0
  642. edify-1.0.0/edify/library/geo/coordinate.py +64 -0
  643. edify-1.0.0/edify/library/geo/geohash.py +17 -0
  644. edify-1.0.0/edify/library/geo/mgrs.py +33 -0
  645. edify-1.0.0/edify/library/geo/place.py +23 -0
  646. edify-1.0.0/edify/library/geo/plus.py +28 -0
  647. edify-1.0.0/edify/library/geo/postal.py +237 -0
  648. edify-1.0.0/edify/library/grammar/__init__.py +8 -0
  649. edify-1.0.0/edify/library/grammar/abnf.py +29 -0
  650. edify-1.0.0/edify/library/grammar/antlr.py +27 -0
  651. edify-1.0.0/edify/library/grammar/bnf.py +25 -0
  652. edify-1.0.0/edify/library/grammar/ebnf.py +26 -0
  653. edify-1.0.0/edify/library/grammar/peg.py +25 -0
  654. edify-1.0.0/edify/library/grammar/pest.py +30 -0
  655. edify-1.0.0/edify/library/identifier/__init__.py +55 -0
  656. edify-1.0.0/edify/library/identifier/arn.py +40 -0
  657. edify-1.0.0/edify/library/identifier/asin.py +17 -0
  658. edify-1.0.0/edify/library/identifier/bic.py +30 -0
  659. edify-1.0.0/edify/library/identifier/cusip.py +17 -0
  660. edify-1.0.0/edify/library/identifier/did.py +23 -0
  661. edify-1.0.0/edify/library/identifier/ein.py +8 -0
  662. edify-1.0.0/edify/library/identifier/guid.py +62 -0
  663. edify-1.0.0/edify/library/identifier/iata.py +10 -0
  664. edify-1.0.0/edify/library/identifier/iban.py +25 -0
  665. edify-1.0.0/edify/library/identifier/icao.py +10 -0
  666. edify-1.0.0/edify/library/identifier/iccid.py +8 -0
  667. edify-1.0.0/edify/library/identifier/imei.py +8 -0
  668. edify-1.0.0/edify/library/identifier/imo.py +10 -0
  669. edify-1.0.0/edify/library/identifier/isin.py +24 -0
  670. edify-1.0.0/edify/library/identifier/itin.py +33 -0
  671. edify-1.0.0/edify/library/identifier/lei.py +17 -0
  672. edify-1.0.0/edify/library/identifier/mac.py +41 -0
  673. edify-1.0.0/edify/library/identifier/meid.py +17 -0
  674. edify-1.0.0/edify/library/identifier/mmsi.py +8 -0
  675. edify-1.0.0/edify/library/identifier/orcid.py +30 -0
  676. edify-1.0.0/edify/library/identifier/sedol.py +25 -0
  677. edify-1.0.0/edify/library/identifier/sku.py +22 -0
  678. edify-1.0.0/edify/library/identifier/ssn.py +51 -0
  679. edify-1.0.0/edify/library/identifier/tin.py +13 -0
  680. edify-1.0.0/edify/library/identifier/uuid.py +53 -0
  681. edify-1.0.0/edify/library/identifier/vin.py +22 -0
  682. edify-1.0.0/edify/library/media/__init__.py +25 -0
  683. edify-1.0.0/edify/library/media/charset.py +23 -0
  684. edify-1.0.0/edify/library/media/codec.py +22 -0
  685. edify-1.0.0/edify/library/media/encoding.py +39 -0
  686. edify-1.0.0/edify/library/media/extension.py +8 -0
  687. edify-1.0.0/edify/library/media/favicon.py +43 -0
  688. edify-1.0.0/edify/library/media/filename.py +39 -0
  689. edify-1.0.0/edify/library/media/glob.py +22 -0
  690. edify-1.0.0/edify/library/media/locale.py +37 -0
  691. edify-1.0.0/edify/library/media/mimetype.py +38 -0
  692. edify-1.0.0/edify/library/media/regex.py +22 -0
  693. edify-1.0.0/edify/library/media/shebang.py +42 -0
  694. edify-1.0.0/edify/library/medical/__init__.py +6 -0
  695. edify-1.0.0/edify/library/medical/any.py +35 -0
  696. edify-1.0.0/edify/library/medical/blood.py +21 -0
  697. edify-1.0.0/edify/library/medical/dicom.py +20 -0
  698. edify-1.0.0/edify/library/medical/dosage.py +51 -0
  699. edify-1.0.0/edify/library/numeric/__init__.py +23 -0
  700. edify-1.0.0/edify/library/numeric/fraction.py +28 -0
  701. edify-1.0.0/edify/library/numeric/hash.py +20 -0
  702. edify-1.0.0/edify/library/numeric/integer.py +10 -0
  703. edify-1.0.0/edify/library/numeric/natural.py +8 -0
  704. edify-1.0.0/edify/library/numeric/number.py +85 -0
  705. edify-1.0.0/edify/library/numeric/ordinal.py +22 -0
  706. edify-1.0.0/edify/library/numeric/percentage.py +27 -0
  707. edify-1.0.0/edify/library/numeric/ratio.py +10 -0
  708. edify-1.0.0/edify/library/numeric/roman.py +39 -0
  709. edify-1.0.0/edify/library/numeric/scientific.py +27 -0
  710. edify-1.0.0/edify/library/product/__init__.py +5 -0
  711. edify-1.0.0/edify/library/product/barcode.py +17 -0
  712. edify-1.0.0/edify/library/product/gtin.py +20 -0
  713. edify-1.0.0/edify/library/product/mpn.py +24 -0
  714. edify-1.0.0/edify/library/publishing/__init__.py +8 -0
  715. edify-1.0.0/edify/library/publishing/arxiv.py +43 -0
  716. edify-1.0.0/edify/library/publishing/doi.py +30 -0
  717. edify-1.0.0/edify/library/publishing/isbn.py +37 -0
  718. edify-1.0.0/edify/library/publishing/issn.py +22 -0
  719. edify-1.0.0/edify/library/publishing/pmc.py +8 -0
  720. edify-1.0.0/edify/library/publishing/pmid.py +8 -0
  721. edify-1.0.0/edify/library/security/__init__.py +25 -0
  722. edify-1.0.0/edify/library/security/age.py +24 -0
  723. edify-1.0.0/edify/library/security/certificate.py +29 -0
  724. edify-1.0.0/edify/library/security/csr.py +29 -0
  725. edify-1.0.0/edify/library/security/der.py +26 -0
  726. edify-1.0.0/edify/library/security/keyring.py +31 -0
  727. edify-1.0.0/edify/library/security/nonce.py +23 -0
  728. edify-1.0.0/edify/library/security/pem.py +30 -0
  729. edify-1.0.0/edify/library/security/pgp.py +31 -0
  730. edify-1.0.0/edify/library/security/signature.py +23 -0
  731. edify-1.0.0/edify/library/security/ssh.py +46 -0
  732. edify-1.0.0/edify/library/security/x509.py +33 -0
  733. edify-1.0.0/edify/library/software/__init__.py +29 -0
  734. edify-1.0.0/edify/library/software/bump.py +22 -0
  735. edify-1.0.0/edify/library/software/cargo.py +45 -0
  736. edify-1.0.0/edify/library/software/checksum.py +18 -0
  737. edify-1.0.0/edify/library/software/component.py +60 -0
  738. edify-1.0.0/edify/library/software/digest.py +28 -0
  739. edify-1.0.0/edify/library/software/docker.py +91 -0
  740. edify-1.0.0/edify/library/software/git.py +17 -0
  741. edify-1.0.0/edify/library/software/image.py +91 -0
  742. edify-1.0.0/edify/library/software/makefile.py +44 -0
  743. edify-1.0.0/edify/library/software/package.py +39 -0
  744. edify-1.0.0/edify/library/software/ref.py +52 -0
  745. edify-1.0.0/edify/library/software/semver.py +91 -0
  746. edify-1.0.0/edify/library/software/version.py +34 -0
  747. edify-1.0.0/edify/library/temporal/__init__.py +27 -0
  748. edify-1.0.0/edify/library/temporal/cron.py +48 -0
  749. edify-1.0.0/edify/library/temporal/date.py +36 -0
  750. edify-1.0.0/edify/library/temporal/datetime.py +81 -0
  751. edify-1.0.0/edify/library/temporal/duration.py +53 -0
  752. edify-1.0.0/edify/library/temporal/epoch.py +10 -0
  753. edify-1.0.0/edify/library/temporal/interval.py +101 -0
  754. edify-1.0.0/edify/library/temporal/iso.py +32 -0
  755. edify-1.0.0/edify/library/temporal/offset.py +25 -0
  756. edify-1.0.0/edify/library/temporal/time.py +54 -0
  757. edify-1.0.0/edify/library/temporal/timestamp.py +10 -0
  758. edify-1.0.0/edify/library/temporal/timezone.py +40 -0
  759. edify-1.0.0/edify/library/temporal/year.py +8 -0
  760. edify-1.0.0/edify/library/text/__init__.py +25 -0
  761. edify-1.0.0/edify/library/text/alpha.py +8 -0
  762. edify-1.0.0/edify/library/text/alphanumeric.py +8 -0
  763. edify-1.0.0/edify/library/text/ascii.py +10 -0
  764. edify-1.0.0/edify/library/text/base.py +56 -0
  765. edify-1.0.0/edify/library/text/emoji.py +17 -0
  766. edify-1.0.0/edify/library/text/numeric.py +8 -0
  767. edify-1.0.0/edify/library/text/printable.py +24 -0
  768. edify-1.0.0/edify/library/text/script.py +24 -0
  769. edify-1.0.0/edify/library/text/slug.py +28 -0
  770. edify-1.0.0/edify/library/text/unicode.py +37 -0
  771. edify-1.0.0/edify/library/text/word.py +10 -0
  772. edify-1.0.0/edify/library/transport/__init__.py +6 -0
  773. edify-1.0.0/edify/library/transport/aircraft.py +21 -0
  774. edify-1.0.0/edify/library/transport/flight.py +18 -0
  775. edify-1.0.0/edify/library/transport/plate.py +24 -0
  776. edify-1.0.0/edify/library/transport/vehicle.py +23 -0
  777. edify-1.0.0/edify/library/web/__init__.py +25 -0
  778. edify-1.0.0/edify/library/web/apache.py +57 -0
  779. edify-1.0.0/edify/library/web/captcha.py +19 -0
  780. edify-1.0.0/edify/library/web/cookie.py +28 -0
  781. edify-1.0.0/edify/library/web/csp.py +43 -0
  782. edify-1.0.0/edify/library/web/htaccess.py +63 -0
  783. edify-1.0.0/edify/library/web/humans.py +49 -0
  784. edify-1.0.0/edify/library/web/manifest.py +38 -0
  785. edify-1.0.0/edify/library/web/nginx.py +57 -0
  786. edify-1.0.0/edify/library/web/robots.py +41 -0
  787. edify-1.0.0/edify/library/web/sitemap.py +31 -0
  788. edify-1.0.0/edify/library/web/useragent.py +29 -0
  789. edify-1.0.0/edify/pattern/__init__.py +99 -0
  790. edify-1.0.0/edify/pattern/anchors.py +14 -0
  791. edify-1.0.0/edify/pattern/boundaries.py +8 -0
  792. edify-1.0.0/edify/pattern/classes.py +31 -0
  793. edify-1.0.0/edify/pattern/composition.py +81 -0
  794. edify-1.0.0/edify/pattern/factories/__init__.py +67 -0
  795. edify-1.0.0/edify/pattern/factories/assertions.py +64 -0
  796. edify-1.0.0/edify/pattern/factories/groups.py +107 -0
  797. edify-1.0.0/edify/pattern/factories/quantifiers.py +183 -0
  798. edify-1.0.0/edify/pattern/factories/values.py +82 -0
  799. edify-1.0.0/edify/pattern/factories/wrap.py +38 -0
  800. edify-1.0.0/edify/py.typed +0 -0
  801. edify-1.0.0/edify/result/__init__.py +4 -0
  802. edify-1.0.0/edify/result/match.py +134 -0
  803. edify-1.0.0/edify/result/regex.py +252 -0
  804. edify-1.0.0/edify/serialize/__init__.py +14 -0
  805. edify-1.0.0/edify/serialize/dump.py +73 -0
  806. edify-1.0.0/edify/serialize/kinds.py +133 -0
  807. edify-1.0.0/edify/serialize/load.py +147 -0
  808. edify-1.0.0/edify/serialize/types.py +9 -0
  809. edify-1.0.0/edify/serialize/version.py +16 -0
  810. edify-1.0.0/edify/testing/__init__.py +7 -0
  811. edify-1.0.0/edify/testing/snapshots.py +91 -0
  812. edify-1.0.0/edify/validate/__init__.py +3 -0
  813. edify-1.0.0/edify/validate/names.py +25 -0
  814. edify-1.0.0/pyproject.toml +181 -0
  815. edify-1.0.0/tests/atoms/alnum.test.py +26 -0
  816. edify-1.0.0/tests/atoms/ascii.test.py +26 -0
  817. edify-1.0.0/tests/atoms/base32.test.py +26 -0
  818. edify-1.0.0/tests/atoms/base58.test.py +26 -0
  819. edify-1.0.0/tests/atoms/base64.test.py +26 -0
  820. edify-1.0.0/tests/atoms/base64url.test.py +26 -0
  821. edify-1.0.0/tests/atoms/bic.test.py +26 -0
  822. edify-1.0.0/tests/atoms/binnum.test.py +26 -0
  823. edify-1.0.0/tests/atoms/boolean.test.py +26 -0
  824. edify-1.0.0/tests/atoms/braces.test.py +26 -0
  825. edify-1.0.0/tests/atoms/brackets.test.py +26 -0
  826. edify-1.0.0/tests/atoms/cidr.test.py +26 -0
  827. edify-1.0.0/tests/atoms/clock.test.py +26 -0
  828. edify-1.0.0/tests/atoms/clock12.test.py +26 -0
  829. edify-1.0.0/tests/atoms/creditcard.test.py +26 -0
  830. edify-1.0.0/tests/atoms/currency.test.py +26 -0
  831. edify-1.0.0/tests/atoms/day.test.py +26 -0
  832. edify-1.0.0/tests/atoms/decimal.test.py +26 -0
  833. edify-1.0.0/tests/atoms/duration.test.py +26 -0
  834. edify-1.0.0/tests/atoms/email.test.py +26 -0
  835. edify-1.0.0/tests/atoms/epoch.test.py +26 -0
  836. edify-1.0.0/tests/atoms/extension.test.py +26 -0
  837. edify-1.0.0/tests/atoms/filename.test.py +26 -0
  838. edify-1.0.0/tests/atoms/filepath.test.py +26 -0
  839. edify-1.0.0/tests/atoms/floatnum.test.py +26 -0
  840. edify-1.0.0/tests/atoms/guid.test.py +26 -0
  841. edify-1.0.0/tests/atoms/hexcolor.test.py +26 -0
  842. edify-1.0.0/tests/atoms/hexnum.test.py +26 -0
  843. edify-1.0.0/tests/atoms/hexstring.test.py +26 -0
  844. edify-1.0.0/tests/atoms/hostname.test.py +26 -0
  845. edify-1.0.0/tests/atoms/httpmethod.test.py +26 -0
  846. edify-1.0.0/tests/atoms/httpstatus.test.py +26 -0
  847. edify-1.0.0/tests/atoms/iban.test.py +26 -0
  848. edify-1.0.0/tests/atoms/integer.test.py +26 -0
  849. edify-1.0.0/tests/atoms/ipv4.test.py +26 -0
  850. edify-1.0.0/tests/atoms/ipv6.test.py +26 -0
  851. edify-1.0.0/tests/atoms/isodate.test.py +26 -0
  852. edify-1.0.0/tests/atoms/isodatetime.test.py +26 -0
  853. edify-1.0.0/tests/atoms/label.test.py +26 -0
  854. edify-1.0.0/tests/atoms/letter.test.py +26 -0
  855. edify-1.0.0/tests/atoms/line.test.py +26 -0
  856. edify-1.0.0/tests/atoms/localpart.test.py +26 -0
  857. edify-1.0.0/tests/atoms/lower.test.py +26 -0
  858. edify-1.0.0/tests/atoms/mac.test.py +26 -0
  859. edify-1.0.0/tests/atoms/md5.test.py +26 -0
  860. edify-1.0.0/tests/atoms/mimetype.test.py +26 -0
  861. edify-1.0.0/tests/atoms/money.test.py +26 -0
  862. edify-1.0.0/tests/atoms/month.test.py +26 -0
  863. edify-1.0.0/tests/atoms/natural.test.py +26 -0
  864. edify-1.0.0/tests/atoms/nibble.test.py +26 -0
  865. edify-1.0.0/tests/atoms/objectid.test.py +26 -0
  866. edify-1.0.0/tests/atoms/octet.test.py +26 -0
  867. edify-1.0.0/tests/atoms/octnum.test.py +26 -0
  868. edify-1.0.0/tests/atoms/oid.test.py +26 -0
  869. edify-1.0.0/tests/atoms/parens.test.py +26 -0
  870. edify-1.0.0/tests/atoms/percent.test.py +26 -0
  871. edify-1.0.0/tests/atoms/port.test.py +26 -0
  872. edify-1.0.0/tests/atoms/printable.test.py +26 -0
  873. edify-1.0.0/tests/atoms/protocol.test.py +26 -0
  874. edify-1.0.0/tests/atoms/quoted.test.py +26 -0
  875. edify-1.0.0/tests/atoms/ratio.test.py +26 -0
  876. edify-1.0.0/tests/atoms/rgbcolor.test.py +26 -0
  877. edify-1.0.0/tests/atoms/scheme.test.py +26 -0
  878. edify-1.0.0/tests/atoms/scientific.test.py +26 -0
  879. edify-1.0.0/tests/atoms/semver.test.py +26 -0
  880. edify-1.0.0/tests/atoms/sha256.test.py +26 -0
  881. edify-1.0.0/tests/atoms/signed.test.py +26 -0
  882. edify-1.0.0/tests/atoms/slug.test.py +26 -0
  883. edify-1.0.0/tests/atoms/space.test.py +26 -0
  884. edify-1.0.0/tests/atoms/timezone.test.py +26 -0
  885. edify-1.0.0/tests/atoms/tld.test.py +26 -0
  886. edify-1.0.0/tests/atoms/truefalse.test.py +26 -0
  887. edify-1.0.0/tests/atoms/ulid.test.py +26 -0
  888. edify-1.0.0/tests/atoms/unsigned.test.py +26 -0
  889. edify-1.0.0/tests/atoms/upper.test.py +26 -0
  890. edify-1.0.0/tests/atoms/uri.test.py +26 -0
  891. edify-1.0.0/tests/atoms/url.test.py +26 -0
  892. edify-1.0.0/tests/atoms/username.test.py +26 -0
  893. edify-1.0.0/tests/atoms/uuid.test.py +26 -0
  894. edify-1.0.0/tests/atoms/weekday.test.py +26 -0
  895. edify-1.0.0/tests/atoms/word.test.py +26 -0
  896. edify-1.0.0/tests/atoms/year.test.py +26 -0
  897. edify-1.0.0/tests/atoms/yesno.test.py +26 -0
  898. edify-1.0.0/tests/bench/__init__.py +0 -0
  899. edify-1.0.0/tests/bench/cases.py +76 -0
  900. edify-1.0.0/tests/bench/compile.py +20 -0
  901. edify-1.0.0/tests/bench/match.py +25 -0
  902. edify-1.0.0/tests/builder/alternation.test.py +13 -0
  903. edify-1.0.0/tests/builder/builder.test.py +579 -0
  904. edify-1.0.0/tests/builder/cache.test.py +120 -0
  905. edify-1.0.0/tests/builder/conflict.test.py +20 -0
  906. edify-1.0.0/tests/builder/diagnose.test.py +76 -0
  907. edify-1.0.0/tests/builder/engine.test.py +55 -0
  908. edify-1.0.0/tests/builder/equality.test.py +143 -0
  909. edify-1.0.0/tests/builder/flags.test.py +129 -0
  910. edify-1.0.0/tests/builder/fork.test.py +47 -0
  911. edify-1.0.0/tests/builder/inline.test.py +56 -0
  912. edify-1.0.0/tests/builder/labels.test.py +101 -0
  913. edify-1.0.0/tests/builder/lookbehind.test.py +57 -0
  914. edify-1.0.0/tests/builder/matcher.test.py +115 -0
  915. edify-1.0.0/tests/builder/merge.test.py +123 -0
  916. edify-1.0.0/tests/builder/operators.test.py +34 -0
  917. edify-1.0.0/tests/builder/ordering.test.py +27 -0
  918. edify-1.0.0/tests/builder/passthrough.test.py +27 -0
  919. edify-1.0.0/tests/builder/properties.test.py +247 -0
  920. edify-1.0.0/tests/builder/ranges.test.py +55 -0
  921. edify-1.0.0/tests/builder/repr.test.py +31 -0
  922. edify-1.0.0/tests/builder/reverse.test.py +113 -0
  923. edify-1.0.0/tests/builder/testing.test.py +71 -0
  924. edify-1.0.0/tests/builder/timeout.test.py +85 -0
  925. edify-1.0.0/tests/builder/use.test.py +30 -0
  926. edify-1.0.0/tests/builder/validation.test.py +126 -0
  927. edify-1.0.0/tests/builder/varargs.test.py +66 -0
  928. edify-1.0.0/tests/compile/escape.test.py +115 -0
  929. edify-1.0.0/tests/compile/redos.test.py +88 -0
  930. edify-1.0.0/tests/conftest.py +49 -0
  931. edify-1.0.0/tests/discipline/anchors.test.py +66 -0
  932. edify-1.0.0/tests/discipline/coverage.test.py +47 -0
  933. edify-1.0.0/tests/discipline/deprecations.test.py +76 -0
  934. edify-1.0.0/tests/discipline/matcher.test.py +44 -0
  935. edify-1.0.0/tests/discipline/orphans.test.py +131 -0
  936. edify-1.0.0/tests/discipline/pragmas.test.py +49 -0
  937. edify-1.0.0/tests/discipline/suppressions.test.py +35 -0
  938. edify-1.0.0/tests/docs/playground.test.py +115 -0
  939. edify-1.0.0/tests/docs/snapshots.test.py +172 -0
  940. edify-1.0.0/tests/errors/context.test.py +31 -0
  941. edify-1.0.0/tests/errors/formatting.test.py +135 -0
  942. edify-1.0.0/tests/errors/frames.test.py +66 -0
  943. edify-1.0.0/tests/errors/generic.test.py +228 -0
  944. edify-1.0.0/tests/errors/quantifier.test.py +90 -0
  945. edify-1.0.0/tests/fixtures/fixtures.test.py +132 -0
  946. edify-1.0.0/tests/integrations/django.test.py +38 -0
  947. edify-1.0.0/tests/integrations/fastapi.test.py +43 -0
  948. edify-1.0.0/tests/integrations/pydantic.test.py +46 -0
  949. edify-1.0.0/tests/introspect/ascii.test.py +472 -0
  950. edify-1.0.0/tests/introspect/explain.test.py +756 -0
  951. edify-1.0.0/tests/introspect/graphviz.test.py +366 -0
  952. edify-1.0.0/tests/introspect/verbose.test.py +457 -0
  953. edify-1.0.0/tests/introspect/visualize.test.py +92 -0
  954. edify-1.0.0/tests/library/algebra.test.py +77 -0
  955. edify-1.0.0/tests/library/corpora/abnf.toml +11 -0
  956. edify-1.0.0/tests/library/corpora/age.toml +12 -0
  957. edify-1.0.0/tests/library/corpora/antlr.toml +9 -0
  958. edify-1.0.0/tests/library/corpora/apache.toml +11 -0
  959. edify-1.0.0/tests/library/corpora/ascii.toml +13 -0
  960. edify-1.0.0/tests/library/corpora/atom.toml +10 -0
  961. edify-1.0.0/tests/library/corpora/avro.toml +11 -0
  962. edify-1.0.0/tests/library/corpora/bnf.toml +11 -0
  963. edify-1.0.0/tests/library/corpora/captcha.toml +11 -0
  964. edify-1.0.0/tests/library/corpora/certificate.toml +10 -0
  965. edify-1.0.0/tests/library/corpora/csr.toml +10 -0
  966. edify-1.0.0/tests/library/corpora/csv.toml +16 -0
  967. edify-1.0.0/tests/library/corpora/date.toml +22 -0
  968. edify-1.0.0/tests/library/corpora/der.toml +10 -0
  969. edify-1.0.0/tests/library/corpora/docx.toml +10 -0
  970. edify-1.0.0/tests/library/corpora/ebnf.toml +11 -0
  971. edify-1.0.0/tests/library/corpora/email.toml +25 -0
  972. edify-1.0.0/tests/library/corpora/email_rfc_5322.toml +20 -0
  973. edify-1.0.0/tests/library/corpora/encoding.toml +17 -0
  974. edify-1.0.0/tests/library/corpora/epub.toml +10 -0
  975. edify-1.0.0/tests/library/corpora/graphql.toml +16 -0
  976. edify-1.0.0/tests/library/corpora/guid.toml +16 -0
  977. edify-1.0.0/tests/library/corpora/hal.toml +11 -0
  978. edify-1.0.0/tests/library/corpora/hdf5.toml +10 -0
  979. edify-1.0.0/tests/library/corpora/hostname.toml +15 -0
  980. edify-1.0.0/tests/library/corpora/htaccess.toml +11 -0
  981. edify-1.0.0/tests/library/corpora/html.toml +16 -0
  982. edify-1.0.0/tests/library/corpora/humans.toml +12 -0
  983. edify-1.0.0/tests/library/corpora/ini.toml +15 -0
  984. edify-1.0.0/tests/library/corpora/ipv4.toml +27 -0
  985. edify-1.0.0/tests/library/corpora/ipv6.toml +24 -0
  986. edify-1.0.0/tests/library/corpora/isbn.toml +13 -0
  987. edify-1.0.0/tests/library/corpora/iso_date.toml +21 -0
  988. edify-1.0.0/tests/library/corpora/json.toml +29 -0
  989. edify-1.0.0/tests/library/corpora/jsonapi.toml +12 -0
  990. edify-1.0.0/tests/library/corpora/keyring.toml +10 -0
  991. edify-1.0.0/tests/library/corpora/mac.toml +21 -0
  992. edify-1.0.0/tests/library/corpora/manifest.toml +10 -0
  993. edify-1.0.0/tests/library/corpora/mobi.toml +10 -0
  994. edify-1.0.0/tests/library/corpora/msgpack.toml +12 -0
  995. edify-1.0.0/tests/library/corpora/nginx.toml +12 -0
  996. edify-1.0.0/tests/library/corpora/oauth.toml +14 -0
  997. edify-1.0.0/tests/library/corpora/odt.toml +10 -0
  998. edify-1.0.0/tests/library/corpora/openapi.toml +12 -0
  999. edify-1.0.0/tests/library/corpora/openid.toml +12 -0
  1000. edify-1.0.0/tests/library/corpora/orc.toml +11 -0
  1001. edify-1.0.0/tests/library/corpora/parquet.toml +11 -0
  1002. edify-1.0.0/tests/library/corpora/password.toml +21 -0
  1003. edify-1.0.0/tests/library/corpora/pdf.toml +13 -0
  1004. edify-1.0.0/tests/library/corpora/peg.toml +11 -0
  1005. edify-1.0.0/tests/library/corpora/pem.toml +12 -0
  1006. edify-1.0.0/tests/library/corpora/pest.toml +12 -0
  1007. edify-1.0.0/tests/library/corpora/pgp.toml +11 -0
  1008. edify-1.0.0/tests/library/corpora/phone.toml +36 -0
  1009. edify-1.0.0/tests/library/corpora/port.toml +17 -0
  1010. edify-1.0.0/tests/library/corpora/postal.toml +35 -0
  1011. edify-1.0.0/tests/library/corpora/pptx.toml +10 -0
  1012. edify-1.0.0/tests/library/corpora/printable.toml +14 -0
  1013. edify-1.0.0/tests/library/corpora/protobuf.toml +15 -0
  1014. edify-1.0.0/tests/library/corpora/readme.toml +16 -0
  1015. edify-1.0.0/tests/library/corpora/robots.toml +12 -0
  1016. edify-1.0.0/tests/library/corpora/rss.toml +11 -0
  1017. edify-1.0.0/tests/library/corpora/rtf.toml +10 -0
  1018. edify-1.0.0/tests/library/corpora/saml.toml +10 -0
  1019. edify-1.0.0/tests/library/corpora/semver.toml +18 -0
  1020. edify-1.0.0/tests/library/corpora/sitemap.toml +10 -0
  1021. edify-1.0.0/tests/library/corpora/slug.toml +17 -0
  1022. edify-1.0.0/tests/library/corpora/soap.toml +10 -0
  1023. edify-1.0.0/tests/library/corpora/ssh.toml +14 -0
  1024. edify-1.0.0/tests/library/corpora/ssn.toml +23 -0
  1025. edify-1.0.0/tests/library/corpora/svg.toml +13 -0
  1026. edify-1.0.0/tests/library/corpora/swagger.toml +12 -0
  1027. edify-1.0.0/tests/library/corpora/tex.toml +10 -0
  1028. edify-1.0.0/tests/library/corpora/toml.toml +15 -0
  1029. edify-1.0.0/tests/library/corpora/tsv.toml +13 -0
  1030. edify-1.0.0/tests/library/corpora/unicode.toml +13 -0
  1031. edify-1.0.0/tests/library/corpora/url.toml +23 -0
  1032. edify-1.0.0/tests/library/corpora/uuid.toml +22 -0
  1033. edify-1.0.0/tests/library/corpora/vin.toml +11 -0
  1034. edify-1.0.0/tests/library/corpora/webhook.toml +12 -0
  1035. edify-1.0.0/tests/library/corpora/x509.toml +9 -0
  1036. edify-1.0.0/tests/library/corpora/xlsx.toml +10 -0
  1037. edify-1.0.0/tests/library/corpora/xml.toml +17 -0
  1038. edify-1.0.0/tests/library/corpora/yaml.toml +18 -0
  1039. edify-1.0.0/tests/library/corpora/zip_code.toml +21 -0
  1040. edify-0.3.0/tests/test_guid.py → edify-1.0.0/tests/library/guid.test.py +2 -2
  1041. edify-1.0.0/tests/library/hardening.test.py +60 -0
  1042. edify-1.0.0/tests/library/invariants.test.py +47 -0
  1043. edify-1.0.0/tests/library/ip.test.py +13 -0
  1044. edify-0.3.0/tests/test_mac.py → edify-1.0.0/tests/library/mac.test.py +0 -1
  1045. edify-1.0.0/tests/library/media/regex.test.py +9 -0
  1046. edify-0.3.0/tests/test_password.py → edify-1.0.0/tests/library/password.test.py +6 -1
  1047. edify-1.0.0/tests/library/phone.test.py +13 -0
  1048. edify-1.0.0/tests/library/postal.test.py +9 -0
  1049. edify-1.0.0/tests/library/snapshots.test.py +41 -0
  1050. edify-0.3.0/tests/ssn_test.py → edify-1.0.0/tests/library/ssn.test.py +0 -1
  1051. edify-1.0.0/tests/library/url.test.py +13 -0
  1052. edify-1.0.0/tests/license.test.py +16 -0
  1053. edify-1.0.0/tests/package.test.py +17 -0
  1054. edify-1.0.0/tests/pattern/anchors.test.py +27 -0
  1055. edify-1.0.0/tests/pattern/boundaries.test.py +27 -0
  1056. edify-1.0.0/tests/pattern/call.test.py +32 -0
  1057. edify-1.0.0/tests/pattern/classes.test.py +88 -0
  1058. edify-1.0.0/tests/pattern/composition.test.py +33 -0
  1059. edify-1.0.0/tests/pattern/factories/assertions.test.py +30 -0
  1060. edify-1.0.0/tests/pattern/factories/groups.test.py +71 -0
  1061. edify-1.0.0/tests/pattern/factories/quantifiers.test.py +108 -0
  1062. edify-1.0.0/tests/pattern/factories/values.test.py +61 -0
  1063. edify-1.0.0/tests/pattern/operators.test.py +54 -0
  1064. edify-1.0.0/tests/property/emitted.test.py +51 -0
  1065. edify-1.0.0/tests/property/parsing.test.py +78 -0
  1066. edify-1.0.0/tests/property/quantifiers.test.py +59 -0
  1067. edify-1.0.0/tests/property/roundtrip.test.py +68 -0
  1068. edify-1.0.0/tests/result/match.test.py +206 -0
  1069. edify-1.0.0/tests/result/regex.test.py +126 -0
  1070. edify-1.0.0/tests/serialize/errors.test.py +73 -0
  1071. edify-1.0.0/tests/serialize/roundtrip.test.py +244 -0
  1072. edify-1.0.0/tests/snapshots/docs/api/atoms/0010.regex +2 -0
  1073. edify-1.0.0/tests/snapshots/docs/api/atoms/0041.regex +0 -0
  1074. edify-1.0.0/tests/snapshots/docs/api/atoms/0056.regex +0 -0
  1075. edify-1.0.0/tests/snapshots/docs/api/atoms/0091.regex +1 -0
  1076. edify-1.0.0/tests/snapshots/docs/api/atoms/0106.regex +1 -0
  1077. edify-1.0.0/tests/snapshots/docs/api/atoms/0121.regex +1 -0
  1078. edify-1.0.0/tests/snapshots/docs/api/atoms/0149.regex +1 -0
  1079. edify-1.0.0/tests/snapshots/docs/api/atoms/0185.regex +1 -0
  1080. edify-1.0.0/tests/snapshots/docs/api/atoms/0227.regex +1 -0
  1081. edify-1.0.0/tests/snapshots/docs/api/atoms/0252.regex +1 -0
  1082. edify-1.0.0/tests/snapshots/docs/api/atoms/0266.regex +1 -0
  1083. edify-1.0.0/tests/snapshots/docs/api/atoms/0286.regex +0 -0
  1084. edify-1.0.0/tests/snapshots/docs/api/atoms/0308.regex +1 -0
  1085. edify-1.0.0/tests/snapshots/docs/api/atoms/0332.regex +1 -0
  1086. edify-1.0.0/tests/snapshots/docs/api/atoms/0358.regex +0 -0
  1087. edify-1.0.0/tests/snapshots/docs/api/atoms/0372.regex +0 -0
  1088. edify-1.0.0/tests/snapshots/docs/api/atoms/0401.regex +0 -0
  1089. edify-1.0.0/tests/snapshots/docs/api/atoms/0423.regex +0 -0
  1090. edify-1.0.0/tests/snapshots/docs/api/atoms/0454.regex +1 -0
  1091. edify-1.0.0/tests/snapshots/docs/api/atoms/0468.regex +0 -0
  1092. edify-1.0.0/tests/snapshots/docs/api/atoms/0482.regex +1 -0
  1093. edify-1.0.0/tests/snapshots/docs/api/atoms/0496.regex +1 -0
  1094. edify-1.0.0/tests/snapshots/docs/api/atoms/0530.regex +2 -0
  1095. edify-1.0.0/tests/snapshots/docs/api/atoms/0545.regex +0 -0
  1096. edify-1.0.0/tests/snapshots/docs/api/atoms/0559.regex +1 -0
  1097. edify-1.0.0/tests/snapshots/docs/api/atoms/0578.regex +0 -0
  1098. edify-1.0.0/tests/snapshots/docs/api/atoms/0592.regex +1 -0
  1099. edify-1.0.0/tests/snapshots/docs/api/atoms/0606.regex +1 -0
  1100. edify-1.0.0/tests/snapshots/docs/api/atoms/0631.regex +0 -0
  1101. edify-1.0.0/tests/snapshots/docs/api/atoms/0645.regex +0 -0
  1102. edify-1.0.0/tests/snapshots/docs/api/atoms/0676.regex +1 -0
  1103. edify-1.0.0/tests/snapshots/docs/api/atoms/0690.regex +1 -0
  1104. edify-1.0.0/tests/snapshots/docs/api/atoms/0710.regex +1 -0
  1105. edify-1.0.0/tests/snapshots/docs/api/atoms/0724.regex +0 -0
  1106. edify-1.0.0/tests/snapshots/docs/api/atoms/0738.regex +1 -0
  1107. edify-1.0.0/tests/snapshots/docs/api/atoms/0773.regex +1 -0
  1108. edify-1.0.0/tests/snapshots/docs/api/atoms/0787.regex +2 -0
  1109. edify-1.0.0/tests/snapshots/docs/api/atoms/0801.regex +1 -0
  1110. edify-1.0.0/tests/snapshots/docs/api/atoms/0815.regex +0 -0
  1111. edify-1.0.0/tests/snapshots/docs/api/atoms/0829.regex +1 -0
  1112. edify-1.0.0/tests/snapshots/docs/api/atoms/0843.regex +0 -0
  1113. edify-1.0.0/tests/snapshots/docs/api/atoms/0873.regex +1 -0
  1114. edify-1.0.0/tests/snapshots/docs/api/atoms/0887.regex +1 -0
  1115. edify-1.0.0/tests/snapshots/docs/api/atoms/0908.regex +1 -0
  1116. edify-1.0.0/tests/snapshots/docs/api/atoms/0922.regex +0 -0
  1117. edify-1.0.0/tests/snapshots/docs/api/atoms/0936.regex +1 -0
  1118. edify-1.0.0/tests/snapshots/docs/api/atoms/0967.regex +1 -0
  1119. edify-1.0.0/tests/snapshots/docs/api/atoms/0983.regex +1 -0
  1120. edify-1.0.0/tests/snapshots/docs/api/atoms/1008.regex +1 -0
  1121. edify-1.0.0/tests/snapshots/docs/api/atoms/1034.regex +1 -0
  1122. edify-1.0.0/tests/snapshots/docs/api/atoms/1058.regex +1 -0
  1123. edify-1.0.0/tests/snapshots/docs/api/atoms/1089.regex +2 -0
  1124. edify-1.0.0/tests/snapshots/docs/api/atoms/1104.regex +2 -0
  1125. edify-1.0.0/tests/snapshots/docs/api/atoms/1119.regex +2 -0
  1126. edify-1.0.0/tests/snapshots/docs/api/atoms/1134.regex +1 -0
  1127. edify-1.0.0/tests/snapshots/docs/api/atoms/1148.regex +2 -0
  1128. edify-1.0.0/tests/snapshots/docs/api/atoms/1163.regex +1 -0
  1129. edify-1.0.0/tests/snapshots/docs/api/atoms/1189.regex +1 -0
  1130. edify-1.0.0/tests/snapshots/docs/api/atoms/1228.regex +1 -0
  1131. edify-1.0.0/tests/snapshots/docs/api/atoms/1257.regex +1 -0
  1132. edify-1.0.0/tests/snapshots/docs/api/atoms/1290.regex +1 -0
  1133. edify-1.0.0/tests/snapshots/docs/api/atoms/1308.regex +0 -0
  1134. edify-1.0.0/tests/snapshots/docs/api/atoms/1361.regex +0 -0
  1135. edify-1.0.0/tests/snapshots/docs/api/atoms/1375.regex +1 -0
  1136. edify-1.0.0/tests/snapshots/docs/api/atoms/1389.regex +1 -0
  1137. edify-1.0.0/tests/snapshots/docs/api/atoms/1440.regex +1 -0
  1138. edify-1.0.0/tests/snapshots/docs/api/atoms/1457.regex +0 -0
  1139. edify-1.0.0/tests/snapshots/docs/api/atoms/1474.regex +1 -0
  1140. edify-1.0.0/tests/snapshots/docs/api/atoms/1503.regex +0 -0
  1141. edify-1.0.0/tests/snapshots/docs/api/atoms/1523.regex +0 -0
  1142. edify-1.0.0/tests/snapshots/docs/api/atoms/1537.regex +0 -0
  1143. edify-1.0.0/tests/snapshots/docs/api/atoms/1551.regex +0 -0
  1144. edify-1.0.0/tests/snapshots/docs/api/atoms/1587.regex +2 -0
  1145. edify-1.0.0/tests/snapshots/docs/api/atoms/1615.regex +1 -0
  1146. edify-1.0.0/tests/snapshots/docs/api/atoms/1639.regex +1 -0
  1147. edify-1.0.0/tests/snapshots/docs/api/atoms/1653.regex +0 -0
  1148. edify-1.0.0/tests/snapshots/docs/api/atoms/1684.regex +1 -0
  1149. edify-1.0.0/tests/snapshots/docs/api/atoms/1723.regex +0 -0
  1150. edify-1.0.0/tests/snapshots/docs/api/atoms/1756.regex +1 -0
  1151. edify-1.0.0/tests/snapshots/docs/api/atoms/1770.regex +0 -0
  1152. edify-1.0.0/tests/snapshots/docs/api/atoms/1795.regex +0 -0
  1153. edify-1.0.0/tests/snapshots/docs/api/atoms/1823.regex +1 -0
  1154. edify-1.0.0/tests/snapshots/docs/api/atoms/1837.regex +1 -0
  1155. edify-1.0.0/tests/snapshots/docs/api/atoms/1851.regex +1 -0
  1156. edify-1.0.0/tests/snapshots/docs/api/builder/index/0015.regex +0 -0
  1157. edify-1.0.0/tests/snapshots/docs/api/constants/0009.regex +0 -0
  1158. edify-1.0.0/tests/snapshots/docs/api/errors/0010.regex +0 -0
  1159. edify-1.0.0/tests/snapshots/docs/api/library/address/0022.regex +0 -0
  1160. edify-1.0.0/tests/snapshots/docs/api/library/address/0084.regex +0 -0
  1161. edify-1.0.0/tests/snapshots/docs/api/library/address/0122.regex +0 -0
  1162. edify-1.0.0/tests/snapshots/docs/api/library/address/0178.regex +2 -0
  1163. edify-1.0.0/tests/snapshots/docs/api/library/address/0386.regex +2 -0
  1164. edify-1.0.0/tests/snapshots/docs/api/library/address/0594.regex +2 -0
  1165. edify-1.0.0/tests/snapshots/docs/api/library/address/0794.regex +0 -0
  1166. edify-1.0.0/tests/snapshots/docs/api/library/address/0861.regex +0 -0
  1167. edify-1.0.0/tests/snapshots/docs/api/library/address/0886.regex +1 -0
  1168. edify-1.0.0/tests/snapshots/docs/api/library/address/0931.regex +1 -0
  1169. edify-1.0.0/tests/snapshots/docs/api/library/address/1003.regex +0 -0
  1170. edify-1.0.0/tests/snapshots/docs/api/library/address/1041.regex +0 -0
  1171. edify-1.0.0/tests/snapshots/docs/api/library/address/1083.regex +0 -0
  1172. edify-1.0.0/tests/snapshots/docs/api/library/address/1109.regex +0 -0
  1173. edify-1.0.0/tests/snapshots/docs/api/library/address/1155.regex +0 -0
  1174. edify-1.0.0/tests/snapshots/docs/api/library/address/1242.regex +0 -0
  1175. edify-1.0.0/tests/snapshots/docs/api/library/api/0022.regex +0 -0
  1176. edify-1.0.0/tests/snapshots/docs/api/library/api/0056.regex +0 -0
  1177. edify-1.0.0/tests/snapshots/docs/api/library/api/0126.regex +0 -0
  1178. edify-1.0.0/tests/snapshots/docs/api/library/api/0167.regex +0 -0
  1179. edify-1.0.0/tests/snapshots/docs/api/library/api/0209.regex +0 -0
  1180. edify-1.0.0/tests/snapshots/docs/api/library/api/0248.regex +0 -0
  1181. edify-1.0.0/tests/snapshots/docs/api/library/api/0321.regex +0 -0
  1182. edify-1.0.0/tests/snapshots/docs/api/library/api/0368.regex +0 -0
  1183. edify-1.0.0/tests/snapshots/docs/api/library/api/0403.regex +0 -0
  1184. edify-1.0.0/tests/snapshots/docs/api/library/api/0454.regex +0 -0
  1185. edify-1.0.0/tests/snapshots/docs/api/library/api/0493.regex +0 -0
  1186. edify-1.0.0/tests/snapshots/docs/api/library/api/0553.regex +0 -0
  1187. edify-1.0.0/tests/snapshots/docs/api/library/auth/0021.regex +0 -0
  1188. edify-1.0.0/tests/snapshots/docs/api/library/auth/0048.regex +0 -0
  1189. edify-1.0.0/tests/snapshots/docs/api/library/auth/0077.regex +0 -0
  1190. edify-1.0.0/tests/snapshots/docs/api/library/auth/0104.regex +0 -0
  1191. edify-1.0.0/tests/snapshots/docs/api/library/auth/0131.regex +0 -0
  1192. edify-1.0.0/tests/snapshots/docs/api/library/auth/0158.regex +0 -0
  1193. edify-1.0.0/tests/snapshots/docs/api/library/auth/0201.regex +0 -0
  1194. edify-1.0.0/tests/snapshots/docs/api/library/auth/0218.regex +0 -0
  1195. edify-1.0.0/tests/snapshots/docs/api/library/auth/0247.regex +0 -0
  1196. edify-1.0.0/tests/snapshots/docs/api/library/auth/0274.regex +0 -0
  1197. edify-1.0.0/tests/snapshots/docs/api/library/auth/0320.regex +0 -0
  1198. edify-1.0.0/tests/snapshots/docs/api/library/auth/0405.regex +0 -0
  1199. edify-1.0.0/tests/snapshots/docs/api/library/auth/0422.regex +0 -0
  1200. edify-1.0.0/tests/snapshots/docs/api/library/auth/0449.regex +0 -0
  1201. edify-1.0.0/tests/snapshots/docs/api/library/auth/0476.regex +0 -0
  1202. edify-1.0.0/tests/snapshots/docs/api/library/auth/0504.regex +0 -0
  1203. edify-1.0.0/tests/snapshots/docs/api/library/auth/0533.regex +0 -0
  1204. edify-1.0.0/tests/snapshots/docs/api/library/auth/0560.regex +0 -0
  1205. edify-1.0.0/tests/snapshots/docs/api/library/auth/0587.regex +0 -0
  1206. edify-1.0.0/tests/snapshots/docs/api/library/color/0021.regex +0 -0
  1207. edify-1.0.0/tests/snapshots/docs/api/library/color/0157.regex +0 -0
  1208. edify-1.0.0/tests/snapshots/docs/api/library/color/0193.regex +0 -0
  1209. edify-1.0.0/tests/snapshots/docs/api/library/color/0227.regex +0 -0
  1210. edify-1.0.0/tests/snapshots/docs/api/library/color/0281.regex +0 -0
  1211. edify-1.0.0/tests/snapshots/docs/api/library/contact/0022.regex +0 -0
  1212. edify-1.0.0/tests/snapshots/docs/api/library/contact/0066.regex +0 -0
  1213. edify-1.0.0/tests/snapshots/docs/api/library/contact/0290.regex +0 -0
  1214. edify-1.0.0/tests/snapshots/docs/api/library/contact/0502.regex +0 -0
  1215. edify-1.0.0/tests/snapshots/docs/api/library/contact/0562.regex +0 -0
  1216. edify-1.0.0/tests/snapshots/docs/api/library/contact/0590.regex +0 -0
  1217. edify-1.0.0/tests/snapshots/docs/api/library/contact/0626.regex +0 -0
  1218. edify-1.0.0/tests/snapshots/docs/api/library/contact/0676.regex +0 -0
  1219. edify-1.0.0/tests/snapshots/docs/api/library/data/0022.regex +0 -0
  1220. edify-1.0.0/tests/snapshots/docs/api/library/data/0041.regex +0 -0
  1221. edify-1.0.0/tests/snapshots/docs/api/library/data/0081.regex +0 -0
  1222. edify-1.0.0/tests/snapshots/docs/api/library/data/0106.regex +0 -0
  1223. edify-1.0.0/tests/snapshots/docs/api/library/data/0144.regex +0 -0
  1224. edify-1.0.0/tests/snapshots/docs/api/library/data/0193.regex +0 -0
  1225. edify-1.0.0/tests/snapshots/docs/api/library/data/0254.regex +0 -0
  1226. edify-1.0.0/tests/snapshots/docs/api/library/data/0286.regex +0 -0
  1227. edify-1.0.0/tests/snapshots/docs/api/library/data/0302.regex +0 -0
  1228. edify-1.0.0/tests/snapshots/docs/api/library/data/0322.regex +0 -0
  1229. edify-1.0.0/tests/snapshots/docs/api/library/data/0381.regex +0 -0
  1230. edify-1.0.0/tests/snapshots/docs/api/library/data/0442.regex +0 -0
  1231. edify-1.0.0/tests/snapshots/docs/api/library/data/0476.regex +0 -0
  1232. edify-1.0.0/tests/snapshots/docs/api/library/data/0522.regex +0 -0
  1233. edify-1.0.0/tests/snapshots/docs/api/library/document/0022.regex +0 -0
  1234. edify-1.0.0/tests/snapshots/docs/api/library/document/0050.regex +0 -0
  1235. edify-1.0.0/tests/snapshots/docs/api/library/document/0078.regex +0 -0
  1236. edify-1.0.0/tests/snapshots/docs/api/library/document/0105.regex +0 -0
  1237. edify-1.0.0/tests/snapshots/docs/api/library/document/0132.regex +0 -0
  1238. edify-1.0.0/tests/snapshots/docs/api/library/document/0160.regex +0 -0
  1239. edify-1.0.0/tests/snapshots/docs/api/library/document/0188.regex +0 -0
  1240. edify-1.0.0/tests/snapshots/docs/api/library/document/0222.regex +0 -0
  1241. edify-1.0.0/tests/snapshots/docs/api/library/document/0249.regex +0 -0
  1242. edify-1.0.0/tests/snapshots/docs/api/library/document/0285.regex +0 -0
  1243. edify-1.0.0/tests/snapshots/docs/api/library/document/0321.regex +0 -0
  1244. edify-1.0.0/tests/snapshots/docs/api/library/financial/0022.regex +0 -0
  1245. edify-1.0.0/tests/snapshots/docs/api/library/financial/0057.regex +0 -0
  1246. edify-1.0.0/tests/snapshots/docs/api/library/financial/0083.regex +0 -0
  1247. edify-1.0.0/tests/snapshots/docs/api/library/financial/0099.regex +0 -0
  1248. edify-1.0.0/tests/snapshots/docs/api/library/financial/0115.regex +0 -0
  1249. edify-1.0.0/tests/snapshots/docs/api/library/financial/0146.regex +0 -0
  1250. edify-1.0.0/tests/snapshots/docs/api/library/financial/0163.regex +0 -0
  1251. edify-1.0.0/tests/snapshots/docs/api/library/geo/0021.regex +0 -0
  1252. edify-1.0.0/tests/snapshots/docs/api/library/geo/0055.regex +0 -0
  1253. edify-1.0.0/tests/snapshots/docs/api/library/geo/0096.regex +0 -0
  1254. edify-1.0.0/tests/snapshots/docs/api/library/geo/0168.regex +0 -0
  1255. edify-1.0.0/tests/snapshots/docs/api/library/geo/0193.regex +0 -0
  1256. edify-1.0.0/tests/snapshots/docs/api/library/geo/0234.regex +0 -0
  1257. edify-1.0.0/tests/snapshots/docs/api/library/geo/0265.regex +0 -0
  1258. edify-1.0.0/tests/snapshots/docs/api/library/geo/0301.regex +0 -0
  1259. edify-1.0.0/tests/snapshots/docs/api/library/grammar/0022.regex +0 -0
  1260. edify-1.0.0/tests/snapshots/docs/api/library/grammar/0057.regex +0 -0
  1261. edify-1.0.0/tests/snapshots/docs/api/library/grammar/0093.regex +0 -0
  1262. edify-1.0.0/tests/snapshots/docs/api/library/grammar/0125.regex +0 -0
  1263. edify-1.0.0/tests/snapshots/docs/api/library/grammar/0158.regex +0 -0
  1264. edify-1.0.0/tests/snapshots/docs/api/library/grammar/0190.regex +0 -0
  1265. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0022.regex +0 -0
  1266. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0068.regex +0 -0
  1267. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0095.regex +0 -0
  1268. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0130.regex +0 -0
  1269. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0156.regex +0 -0
  1270. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0185.regex +0 -0
  1271. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0212.regex +0 -0
  1272. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0271.regex +0 -0
  1273. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0288.regex +0 -0
  1274. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0320.regex +0 -0
  1275. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0336.regex +0 -0
  1276. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0352.regex +0 -0
  1277. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0369.regex +0 -0
  1278. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0386.regex +0 -0
  1279. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0417.regex +0 -0
  1280. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0456.regex +0 -0
  1281. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0493.regex +0 -0
  1282. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0529.regex +0 -0
  1283. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0554.regex +0 -0
  1284. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0572.regex +0 -0
  1285. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0608.regex +0 -0
  1286. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0641.regex +0 -0
  1287. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0680.regex +0 -0
  1288. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0727.regex +0 -0
  1289. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0755.regex +0 -0
  1290. edify-1.0.0/tests/snapshots/docs/api/library/identifier/0807.regex +0 -0
  1291. edify-1.0.0/tests/snapshots/docs/api/library/index/0008.regex +0 -0
  1292. edify-1.0.0/tests/snapshots/docs/api/library/media/0021.regex +0 -0
  1293. edify-1.0.0/tests/snapshots/docs/api/library/media/0052.regex +0 -0
  1294. edify-1.0.0/tests/snapshots/docs/api/library/media/0083.regex +0 -0
  1295. edify-1.0.0/tests/snapshots/docs/api/library/media/0128.regex +0 -0
  1296. edify-1.0.0/tests/snapshots/docs/api/library/media/0144.regex +0 -0
  1297. edify-1.0.0/tests/snapshots/docs/api/library/media/0195.regex +0 -0
  1298. edify-1.0.0/tests/snapshots/docs/api/library/media/0242.regex +0 -0
  1299. edify-1.0.0/tests/snapshots/docs/api/library/media/0272.regex +0 -0
  1300. edify-1.0.0/tests/snapshots/docs/api/library/media/0317.regex +0 -0
  1301. edify-1.0.0/tests/snapshots/docs/api/library/media/0364.regex +0 -0
  1302. edify-1.0.0/tests/snapshots/docs/api/library/media/0392.regex +0 -0
  1303. edify-1.0.0/tests/snapshots/docs/api/library/medical/0021.regex +0 -0
  1304. edify-1.0.0/tests/snapshots/docs/api/library/medical/0050.regex +0 -0
  1305. edify-1.0.0/tests/snapshots/docs/api/library/medical/0080.regex +0 -0
  1306. edify-1.0.0/tests/snapshots/docs/api/library/medical/0136.regex +0 -0
  1307. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0022.regex +0 -0
  1308. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0057.regex +0 -0
  1309. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0083.regex +0 -0
  1310. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0101.regex +0 -0
  1311. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0119.regex +0 -0
  1312. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0209.regex +0 -0
  1313. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0240.regex +0 -0
  1314. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0273.regex +0 -0
  1315. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0291.regex +0 -0
  1316. edify-1.0.0/tests/snapshots/docs/api/library/numeric/0338.regex +0 -0
  1317. edify-1.0.0/tests/snapshots/docs/api/library/product/0021.regex +0 -0
  1318. edify-1.0.0/tests/snapshots/docs/api/library/product/0046.regex +0 -0
  1319. edify-1.0.0/tests/snapshots/docs/api/library/product/0074.regex +0 -0
  1320. edify-1.0.0/tests/snapshots/docs/api/library/publishing/0021.regex +0 -0
  1321. edify-1.0.0/tests/snapshots/docs/api/library/publishing/0072.regex +0 -0
  1322. edify-1.0.0/tests/snapshots/docs/api/library/publishing/0110.regex +0 -0
  1323. edify-1.0.0/tests/snapshots/docs/api/library/publishing/0155.regex +0 -0
  1324. edify-1.0.0/tests/snapshots/docs/api/library/publishing/0185.regex +0 -0
  1325. edify-1.0.0/tests/snapshots/docs/api/library/publishing/0201.regex +0 -0
  1326. edify-1.0.0/tests/snapshots/docs/api/library/security/0022.regex +0 -0
  1327. edify-1.0.0/tests/snapshots/docs/api/library/security/0053.regex +0 -0
  1328. edify-1.0.0/tests/snapshots/docs/api/library/security/0089.regex +0 -0
  1329. edify-1.0.0/tests/snapshots/docs/api/library/security/0125.regex +0 -0
  1330. edify-1.0.0/tests/snapshots/docs/api/library/security/0158.regex +0 -0
  1331. edify-1.0.0/tests/snapshots/docs/api/library/security/0195.regex +0 -0
  1332. edify-1.0.0/tests/snapshots/docs/api/library/security/0228.regex +0 -0
  1333. edify-1.0.0/tests/snapshots/docs/api/library/security/0264.regex +0 -0
  1334. edify-1.0.0/tests/snapshots/docs/api/library/security/0301.regex +0 -0
  1335. edify-1.0.0/tests/snapshots/docs/api/library/security/0333.regex +0 -0
  1336. edify-1.0.0/tests/snapshots/docs/api/library/security/0386.regex +0 -0
  1337. edify-1.0.0/tests/snapshots/docs/api/library/software/0021.regex +0 -0
  1338. edify-1.0.0/tests/snapshots/docs/api/library/software/0051.regex +0 -0
  1339. edify-1.0.0/tests/snapshots/docs/api/library/software/0104.regex +0 -0
  1340. edify-1.0.0/tests/snapshots/docs/api/library/software/0130.regex +0 -0
  1341. edify-1.0.0/tests/snapshots/docs/api/library/software/0198.regex +0 -0
  1342. edify-1.0.0/tests/snapshots/docs/api/library/software/0234.regex +0 -0
  1343. edify-1.0.0/tests/snapshots/docs/api/library/software/0333.regex +0 -0
  1344. edify-1.0.0/tests/snapshots/docs/api/library/software/0358.regex +0 -0
  1345. edify-1.0.0/tests/snapshots/docs/api/library/software/0457.regex +0 -0
  1346. edify-1.0.0/tests/snapshots/docs/api/library/software/0509.regex +0 -0
  1347. edify-1.0.0/tests/snapshots/docs/api/library/software/0556.regex +0 -0
  1348. edify-1.0.0/tests/snapshots/docs/api/library/software/0616.regex +0 -0
  1349. edify-1.0.0/tests/snapshots/docs/api/library/software/0715.regex +0 -0
  1350. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0022.regex +0 -0
  1351. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0090.regex +0 -0
  1352. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0121.regex +0 -0
  1353. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0208.regex +0 -0
  1354. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0268.regex +0 -0
  1355. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0285.regex +0 -0
  1356. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0403.regex +0 -0
  1357. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0432.regex +0 -0
  1358. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0464.regex +0 -0
  1359. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0525.regex +0 -0
  1360. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0543.regex +0 -0
  1361. edify-1.0.0/tests/snapshots/docs/api/library/temporal/0588.regex +0 -0
  1362. edify-1.0.0/tests/snapshots/docs/api/library/text/0021.regex +0 -0
  1363. edify-1.0.0/tests/snapshots/docs/api/library/text/0037.regex +0 -0
  1364. edify-1.0.0/tests/snapshots/docs/api/library/text/0054.regex +0 -0
  1365. edify-1.0.0/tests/snapshots/docs/api/library/text/0071.regex +0 -0
  1366. edify-1.0.0/tests/snapshots/docs/api/library/text/0133.regex +0 -0
  1367. edify-1.0.0/tests/snapshots/docs/api/library/text/0158.regex +0 -0
  1368. edify-1.0.0/tests/snapshots/docs/api/library/text/0175.regex +0 -0
  1369. edify-1.0.0/tests/snapshots/docs/api/library/text/0207.regex +0 -0
  1370. edify-1.0.0/tests/snapshots/docs/api/library/text/0237.regex +0 -0
  1371. edify-1.0.0/tests/snapshots/docs/api/library/text/0272.regex +0 -0
  1372. edify-1.0.0/tests/snapshots/docs/api/library/text/0316.regex +0 -0
  1373. edify-1.0.0/tests/snapshots/docs/api/library/transport/0021.regex +0 -0
  1374. edify-1.0.0/tests/snapshots/docs/api/library/transport/0050.regex +0 -0
  1375. edify-1.0.0/tests/snapshots/docs/api/library/transport/0076.regex +0 -0
  1376. edify-1.0.0/tests/snapshots/docs/api/library/transport/0108.regex +0 -0
  1377. edify-1.0.0/tests/snapshots/docs/api/library/web/0022.regex +0 -0
  1378. edify-1.0.0/tests/snapshots/docs/api/library/web/0086.regex +0 -0
  1379. edify-1.0.0/tests/snapshots/docs/api/library/web/0111.regex +0 -0
  1380. edify-1.0.0/tests/snapshots/docs/api/library/web/0147.regex +0 -0
  1381. edify-1.0.0/tests/snapshots/docs/api/library/web/0199.regex +0 -0
  1382. edify-1.0.0/tests/snapshots/docs/api/library/web/0269.regex +0 -0
  1383. edify-1.0.0/tests/snapshots/docs/api/library/web/0326.regex +0 -0
  1384. edify-1.0.0/tests/snapshots/docs/api/library/web/0370.regex +0 -0
  1385. edify-1.0.0/tests/snapshots/docs/api/library/web/0434.regex +0 -0
  1386. edify-1.0.0/tests/snapshots/docs/api/library/web/0482.regex +0 -0
  1387. edify-1.0.0/tests/snapshots/docs/api/library/web/0519.regex +0 -0
  1388. edify-1.0.0/tests/snapshots/docs/guide/atoms/finance/0080.regex +1 -0
  1389. edify-1.0.0/tests/snapshots/docs/guide/atoms/grouping/0079.regex +2 -0
  1390. edify-1.0.0/tests/snapshots/docs/guide/atoms/text/0075.regex +0 -0
  1391. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0015.regex +0 -0
  1392. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0034.regex +0 -0
  1393. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0055.regex +0 -0
  1394. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0067.regex +0 -0
  1395. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0081.regex +0 -0
  1396. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0107.regex +0 -0
  1397. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0119.regex +0 -0
  1398. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0139.regex +0 -0
  1399. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0154.regex +0 -0
  1400. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0183.regex +0 -0
  1401. edify-1.0.0/tests/snapshots/docs/guide/beyond/composing/0199.regex +0 -0
  1402. edify-1.0.0/tests/snapshots/docs/guide/beyond/errors/0011.regex +0 -0
  1403. edify-1.0.0/tests/snapshots/docs/guide/beyond/errors/0066.regex +0 -0
  1404. edify-1.0.0/tests/snapshots/docs/guide/beyond/errors/0114.regex +0 -0
  1405. edify-1.0.0/tests/snapshots/docs/guide/beyond/errors/0173.regex +0 -0
  1406. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0010.regex +0 -0
  1407. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0022.regex +0 -0
  1408. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0033.regex +1 -0
  1409. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0068.regex +0 -0
  1410. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0086.regex +1 -0
  1411. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0121.regex +0 -0
  1412. edify-1.0.0/tests/snapshots/docs/guide/beyond/from-regex/0141.regex +0 -0
  1413. edify-1.0.0/tests/snapshots/docs/guide/beyond/integrations/0022.regex +0 -0
  1414. edify-1.0.0/tests/snapshots/docs/guide/beyond/integrations/0075.regex +1 -0
  1415. edify-1.0.0/tests/snapshots/docs/guide/beyond/integrations/0097.regex +1 -0
  1416. edify-1.0.0/tests/snapshots/docs/guide/beyond/integrations/0124.regex +0 -0
  1417. edify-1.0.0/tests/snapshots/docs/guide/beyond/integrations/0137.regex +0 -0
  1418. edify-1.0.0/tests/snapshots/docs/guide/beyond/integrations/0157.regex +1 -0
  1419. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0013.regex +0 -0
  1420. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0033.regex +1 -0
  1421. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0064.regex +1 -0
  1422. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0100.regex +2 -0
  1423. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0136.regex +1 -0
  1424. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0148.regex +1 -0
  1425. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0163.regex +0 -0
  1426. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0175.regex +1 -0
  1427. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0192.regex +0 -0
  1428. edify-1.0.0/tests/snapshots/docs/guide/beyond/matching/0213.regex +1 -0
  1429. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0012.regex +1 -0
  1430. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0033.regex +1 -0
  1431. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0053.regex +1 -0
  1432. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0092.regex +1 -0
  1433. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0109.regex +1 -0
  1434. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0134.regex +1 -0
  1435. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0152.regex +1 -0
  1436. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0199.regex +1 -0
  1437. edify-1.0.0/tests/snapshots/docs/guide/beyond/seeing/0215.regex +1 -0
  1438. edify-1.0.0/tests/snapshots/docs/guide/beyond/serialization/0020.regex +1 -0
  1439. edify-1.0.0/tests/snapshots/docs/guide/beyond/serialization/0068.regex +0 -0
  1440. edify-1.0.0/tests/snapshots/docs/guide/beyond/serialization/0092.regex +0 -0
  1441. edify-1.0.0/tests/snapshots/docs/guide/beyond/serialization/0131.regex +0 -0
  1442. edify-1.0.0/tests/snapshots/docs/guide/beyond/serialization/0156.regex +2 -0
  1443. edify-1.0.0/tests/snapshots/docs/guide/beyond/testing/0017.regex +0 -0
  1444. edify-1.0.0/tests/snapshots/docs/guide/beyond/testing/0092.regex +0 -0
  1445. edify-1.0.0/tests/snapshots/docs/guide/beyond/testing/0142.regex +0 -0
  1446. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0017.regex +0 -0
  1447. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0027.regex +0 -0
  1448. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0064.regex +0 -0
  1449. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0071.regex +1 -0
  1450. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0101.regex +0 -0
  1451. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0113.regex +0 -0
  1452. edify-1.0.0/tests/snapshots/docs/guide/builder/anchors/0138.regex +1 -0
  1453. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0014.regex +0 -0
  1454. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0024.regex +1 -0
  1455. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0054.regex +0 -0
  1456. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0063.regex +0 -0
  1457. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0090.regex +0 -0
  1458. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0122.regex +1 -0
  1459. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0148.regex +1 -0
  1460. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0177.regex +0 -0
  1461. edify-1.0.0/tests/snapshots/docs/guide/builder/captures/0194.regex +1 -0
  1462. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0013.regex +0 -0
  1463. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0027.regex +0 -0
  1464. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0046.regex +0 -0
  1465. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0062.regex +0 -0
  1466. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0088.regex +0 -0
  1467. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0099.regex +0 -0
  1468. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0111.regex +0 -0
  1469. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0124.regex +0 -0
  1470. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0142.regex +0 -0
  1471. edify-1.0.0/tests/snapshots/docs/guide/builder/characters/0244.regex +0 -0
  1472. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0014.regex +1 -0
  1473. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0053.regex +1 -0
  1474. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0079.regex +0 -0
  1475. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0098.regex +0 -0
  1476. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0136.regex +0 -0
  1477. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0153.regex +1 -0
  1478. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0169.regex +0 -0
  1479. edify-1.0.0/tests/snapshots/docs/guide/builder/flags/0194.regex +0 -0
  1480. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0014.regex +0 -0
  1481. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0024.regex +0 -0
  1482. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0054.regex +0 -0
  1483. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0064.regex +0 -0
  1484. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0075.regex +2 -0
  1485. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0098.regex +0 -0
  1486. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0117.regex +0 -0
  1487. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0160.regex +0 -0
  1488. edify-1.0.0/tests/snapshots/docs/guide/builder/groups/0175.regex +0 -0
  1489. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0017.regex +0 -0
  1490. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0030.regex +1 -0
  1491. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0058.regex +0 -0
  1492. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0068.regex +1 -0
  1493. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0093.regex +1 -0
  1494. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0126.regex +1 -0
  1495. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0180.regex +1 -0
  1496. edify-1.0.0/tests/snapshots/docs/guide/builder/lookaround/0198.regex +0 -0
  1497. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0012.regex +0 -0
  1498. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0036.regex +0 -0
  1499. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0052.regex +0 -0
  1500. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0063.regex +2 -0
  1501. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0098.regex +0 -0
  1502. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0124.regex +0 -0
  1503. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0141.regex +0 -0
  1504. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0159.regex +0 -0
  1505. edify-1.0.0/tests/snapshots/docs/guide/builder/quantifiers/0182.regex +0 -0
  1506. edify-1.0.0/tests/snapshots/docs/guide/practice/debugging/0016.regex +0 -0
  1507. edify-1.0.0/tests/snapshots/docs/guide/practice/debugging/0044.regex +0 -0
  1508. edify-1.0.0/tests/snapshots/docs/guide/practice/debugging/0121.regex +1 -0
  1509. edify-1.0.0/tests/snapshots/docs/guide/practice/debugging/0152.regex +1 -0
  1510. edify-1.0.0/tests/snapshots/docs/guide/practice/debugging/0189.regex +0 -0
  1511. edify-1.0.0/tests/snapshots/docs/guide/practice/performance/0022.regex +1 -0
  1512. edify-1.0.0/tests/snapshots/docs/guide/practice/performance/0104.regex +0 -0
  1513. edify-1.0.0/tests/snapshots/docs/guide/practice/performance/0114.regex +0 -0
  1514. edify-1.0.0/tests/snapshots/docs/guide/practice/performance/0133.regex +1 -0
  1515. edify-1.0.0/tests/snapshots/docs/guide/practice/recipes/0016.regex +0 -0
  1516. edify-1.0.0/tests/snapshots/docs/guide/practice/recipes/0062.regex +1 -0
  1517. edify-1.0.0/tests/snapshots/docs/guide/practice/recipes/0088.regex +1 -0
  1518. edify-1.0.0/tests/snapshots/docs/guide/practice/recipes/0125.regex +1 -0
  1519. edify-1.0.0/tests/snapshots/docs/guide/practice/recipes/0153.regex +1 -0
  1520. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0018.regex +0 -0
  1521. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0032.regex +1 -0
  1522. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0063.regex +1 -0
  1523. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0078.regex +0 -0
  1524. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0105.regex +1 -0
  1525. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0142.regex +1 -0
  1526. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0167.regex +1 -0
  1527. edify-1.0.0/tests/snapshots/docs/guide/practice/unicode/0189.regex +1 -0
  1528. edify-1.0.0/tests/snapshots/docs/guide/start/getting-started/0037.regex +0 -0
  1529. edify-1.0.0/tests/snapshots/docs/guide/start/getting-started/0067.regex +0 -0
  1530. edify-1.0.0/tests/snapshots/docs/guide/start/getting-started/0083.regex +0 -0
  1531. edify-1.0.0/tests/snapshots/docs/guide/start/getting-started/0108.regex +1 -0
  1532. edify-1.0.0/tests/snapshots/docs/guide/start/getting-started/0118.regex +1 -0
  1533. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0015.regex +0 -0
  1534. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0028.regex +0 -0
  1535. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0055.regex +0 -0
  1536. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0078.regex +0 -0
  1537. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0103.regex +0 -0
  1538. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0129.regex +0 -0
  1539. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0140.regex +0 -0
  1540. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0155.regex +0 -0
  1541. edify-1.0.0/tests/snapshots/docs/guide/start/thinking-in-edify/0164.regex +0 -0
  1542. edify-1.0.0/tests/snapshots/docs/library/address/index/0010.regex +0 -0
  1543. edify-1.0.0/tests/snapshots/docs/library/api/index/0009.regex +0 -0
  1544. edify-1.0.0/tests/snapshots/docs/library/auth/index/0011.regex +0 -0
  1545. edify-1.0.0/tests/snapshots/docs/library/color/index/0009.regex +0 -0
  1546. edify-1.0.0/tests/snapshots/docs/library/contact/index/0009.regex +0 -0
  1547. edify-1.0.0/tests/snapshots/docs/library/data/index/0009.regex +0 -0
  1548. edify-1.0.0/tests/snapshots/docs/library/document/index/0009.regex +0 -0
  1549. edify-1.0.0/tests/snapshots/docs/library/financial/index/0013.regex +0 -0
  1550. edify-1.0.0/tests/snapshots/docs/library/geo/index/0009.regex +0 -0
  1551. edify-1.0.0/tests/snapshots/docs/library/grammar/index/0009.regex +0 -0
  1552. edify-1.0.0/tests/snapshots/docs/library/identifier/index/0014.regex +0 -0
  1553. edify-1.0.0/tests/snapshots/docs/library/index/0008.regex +0 -0
  1554. edify-1.0.0/tests/snapshots/docs/library/media/index/0009.regex +0 -0
  1555. edify-1.0.0/tests/snapshots/docs/library/medical/index/0012.regex +0 -0
  1556. edify-1.0.0/tests/snapshots/docs/library/numeric/index/0009.regex +0 -0
  1557. edify-1.0.0/tests/snapshots/docs/library/product/index/0008.regex +0 -0
  1558. edify-1.0.0/tests/snapshots/docs/library/publishing/index/0008.regex +0 -0
  1559. edify-1.0.0/tests/snapshots/docs/library/security/index/0013.regex +0 -0
  1560. edify-1.0.0/tests/snapshots/docs/library/software/index/0009.regex +0 -0
  1561. edify-1.0.0/tests/snapshots/docs/library/temporal/index/0013.regex +0 -0
  1562. edify-1.0.0/tests/snapshots/docs/library/text/index/0010.regex +0 -0
  1563. edify-1.0.0/tests/snapshots/docs/library/transport/index/0008.regex +0 -0
  1564. edify-1.0.0/tests/snapshots/docs/library/web/index/0009.regex +0 -0
  1565. edify-1.0.0/tests/snapshots/docs/upgrading/0.3-to-1.0/0037.regex +0 -0
  1566. edify-1.0.0/tests/snapshots/docs/upgrading/0.3-to-1.0/0055.regex +0 -0
  1567. edify-1.0.0/tests/snapshots/docs/upgrading/0.3-to-1.0/0089.regex +1 -0
  1568. edify-1.0.0/tests/snapshots/docs/upgrading/0.3-to-1.0/0102.regex +0 -0
  1569. edify-1.0.0/tests/snapshots/docs/upgrading/0.3-to-1.0/0138.regex +0 -0
  1570. edify-1.0.0/tests/snapshots/fixtures/alternation_with_overlapping_prefixes_redos.regex +1 -0
  1571. edify-1.0.0/tests/snapshots/fixtures/combined_lookaround.regex +1 -0
  1572. edify-1.0.0/tests/snapshots/fixtures/deeply_nested_alternation.regex +1 -0
  1573. edify-1.0.0/tests/snapshots/fixtures/email_shape_pattern.regex +1 -0
  1574. edify-1.0.0/tests/snapshots/fixtures/hex_color_pattern.regex +1 -0
  1575. edify-1.0.0/tests/snapshots/fixtures/named_backreference_pair.regex +1 -0
  1576. edify-1.0.0/tests/snapshots/fixtures/nested_unbounded_quantifier_redos.regex +1 -0
  1577. edify-1.0.0/tests/snapshots/fixtures/pattern_composition_via_use.regex +1 -0
  1578. edify-1.0.0/tests/snapshots/library/abnf.regex +1 -0
  1579. edify-1.0.0/tests/snapshots/library/address.regex +1 -0
  1580. edify-1.0.0/tests/snapshots/library/age.regex +1 -0
  1581. edify-1.0.0/tests/snapshots/library/aircraft.regex +1 -0
  1582. edify-1.0.0/tests/snapshots/library/alpha.regex +1 -0
  1583. edify-1.0.0/tests/snapshots/library/alphanumeric.regex +1 -0
  1584. edify-1.0.0/tests/snapshots/library/altitude.regex +1 -0
  1585. edify-1.0.0/tests/snapshots/library/antlr.regex +1 -0
  1586. edify-1.0.0/tests/snapshots/library/apache.regex +1 -0
  1587. edify-1.0.0/tests/snapshots/library/apikey.regex +1 -0
  1588. edify-1.0.0/tests/snapshots/library/arn.regex +1 -0
  1589. edify-1.0.0/tests/snapshots/library/arxiv.regex +1 -0
  1590. edify-1.0.0/tests/snapshots/library/ascii.regex +1 -0
  1591. edify-1.0.0/tests/snapshots/library/asin.regex +1 -0
  1592. edify-1.0.0/tests/snapshots/library/atom.regex +1 -0
  1593. edify-1.0.0/tests/snapshots/library/avro.regex +1 -0
  1594. edify-1.0.0/tests/snapshots/library/barcode.regex +1 -0
  1595. edify-1.0.0/tests/snapshots/library/base.regex +1 -0
  1596. edify-1.0.0/tests/snapshots/library/bearer.regex +1 -0
  1597. edify-1.0.0/tests/snapshots/library/bearing.regex +1 -0
  1598. edify-1.0.0/tests/snapshots/library/bic.regex +1 -0
  1599. edify-1.0.0/tests/snapshots/library/blood.regex +1 -0
  1600. edify-1.0.0/tests/snapshots/library/bnf.regex +2 -0
  1601. edify-1.0.0/tests/snapshots/library/bump.regex +1 -0
  1602. edify-1.0.0/tests/snapshots/library/captcha.regex +1 -0
  1603. edify-1.0.0/tests/snapshots/library/card.regex +1 -0
  1604. edify-1.0.0/tests/snapshots/library/cargo.regex +1 -0
  1605. edify-1.0.0/tests/snapshots/library/certificate.regex +1 -0
  1606. edify-1.0.0/tests/snapshots/library/challenge.regex +1 -0
  1607. edify-1.0.0/tests/snapshots/library/charset.regex +1 -0
  1608. edify-1.0.0/tests/snapshots/library/checksum.regex +1 -0
  1609. edify-1.0.0/tests/snapshots/library/cidr.regex +1 -0
  1610. edify-1.0.0/tests/snapshots/library/codec.regex +1 -0
  1611. edify-1.0.0/tests/snapshots/library/color.regex +1 -0
  1612. edify-1.0.0/tests/snapshots/library/component.regex +1 -0
  1613. edify-1.0.0/tests/snapshots/library/cookie.regex +1 -0
  1614. edify-1.0.0/tests/snapshots/library/coordinate.regex +1 -0
  1615. edify-1.0.0/tests/snapshots/library/cron.regex +1 -0
  1616. edify-1.0.0/tests/snapshots/library/crypto.regex +1 -0
  1617. edify-1.0.0/tests/snapshots/library/csp.regex +1 -0
  1618. edify-1.0.0/tests/snapshots/library/csr.regex +1 -0
  1619. edify-1.0.0/tests/snapshots/library/csrf.regex +1 -0
  1620. edify-1.0.0/tests/snapshots/library/csv.regex +7 -0
  1621. edify-1.0.0/tests/snapshots/library/currency.regex +1 -0
  1622. edify-1.0.0/tests/snapshots/library/cusip.regex +1 -0
  1623. edify-1.0.0/tests/snapshots/library/date.regex +1 -0
  1624. edify-1.0.0/tests/snapshots/library/datetime.regex +1 -0
  1625. edify-1.0.0/tests/snapshots/library/der.regex +0 -0
  1626. edify-1.0.0/tests/snapshots/library/dicom.regex +1 -0
  1627. edify-1.0.0/tests/snapshots/library/did.regex +1 -0
  1628. edify-1.0.0/tests/snapshots/library/digest.regex +1 -0
  1629. edify-1.0.0/tests/snapshots/library/docker.regex +1 -0
  1630. edify-1.0.0/tests/snapshots/library/docx.regex +1 -0
  1631. edify-1.0.0/tests/snapshots/library/doi.regex +1 -0
  1632. edify-1.0.0/tests/snapshots/library/domain.regex +1 -0
  1633. edify-1.0.0/tests/snapshots/library/dosage.regex +1 -0
  1634. edify-1.0.0/tests/snapshots/library/duration.regex +1 -0
  1635. edify-1.0.0/tests/snapshots/library/ebnf.regex +1 -0
  1636. edify-1.0.0/tests/snapshots/library/ein.regex +1 -0
  1637. edify-1.0.0/tests/snapshots/library/email.regex +1 -0
  1638. edify-1.0.0/tests/snapshots/library/email_rfc_5322.regex +1 -0
  1639. edify-1.0.0/tests/snapshots/library/emoji.regex +1 -0
  1640. edify-1.0.0/tests/snapshots/library/encoding.regex +1 -0
  1641. edify-1.0.0/tests/snapshots/library/epoch.regex +1 -0
  1642. edify-1.0.0/tests/snapshots/library/epub.regex +1 -0
  1643. edify-1.0.0/tests/snapshots/library/extension.regex +1 -0
  1644. edify-1.0.0/tests/snapshots/library/favicon.regex +0 -0
  1645. edify-1.0.0/tests/snapshots/library/fax.regex +1 -0
  1646. edify-1.0.0/tests/snapshots/library/filename.regex +0 -0
  1647. edify-1.0.0/tests/snapshots/library/filter.regex +1 -0
  1648. edify-1.0.0/tests/snapshots/library/flight.regex +1 -0
  1649. edify-1.0.0/tests/snapshots/library/fraction.regex +1 -0
  1650. edify-1.0.0/tests/snapshots/library/geohash.regex +1 -0
  1651. edify-1.0.0/tests/snapshots/library/git.regex +1 -0
  1652. edify-1.0.0/tests/snapshots/library/glob.regex +0 -0
  1653. edify-1.0.0/tests/snapshots/library/gradient.regex +1 -0
  1654. edify-1.0.0/tests/snapshots/library/graphql.regex +1 -0
  1655. edify-1.0.0/tests/snapshots/library/gtin.regex +1 -0
  1656. edify-1.0.0/tests/snapshots/library/guid.regex +1 -0
  1657. edify-1.0.0/tests/snapshots/library/hal.regex +1 -0
  1658. edify-1.0.0/tests/snapshots/library/handle.regex +1 -0
  1659. edify-1.0.0/tests/snapshots/library/hash.regex +1 -0
  1660. edify-1.0.0/tests/snapshots/library/hdf5.regex +3 -0
  1661. edify-1.0.0/tests/snapshots/library/hmac.regex +1 -0
  1662. edify-1.0.0/tests/snapshots/library/hostname.regex +1 -0
  1663. edify-1.0.0/tests/snapshots/library/htaccess.regex +1 -0
  1664. edify-1.0.0/tests/snapshots/library/html.regex +1 -0
  1665. edify-1.0.0/tests/snapshots/library/humans.regex +1 -0
  1666. edify-1.0.0/tests/snapshots/library/iata.regex +1 -0
  1667. edify-1.0.0/tests/snapshots/library/iban.regex +1 -0
  1668. edify-1.0.0/tests/snapshots/library/icao.regex +1 -0
  1669. edify-1.0.0/tests/snapshots/library/iccid.regex +1 -0
  1670. edify-1.0.0/tests/snapshots/library/image.regex +1 -0
  1671. edify-1.0.0/tests/snapshots/library/imei.regex +1 -0
  1672. edify-1.0.0/tests/snapshots/library/imo.regex +1 -0
  1673. edify-1.0.0/tests/snapshots/library/ini.regex +2 -0
  1674. edify-1.0.0/tests/snapshots/library/integer.regex +1 -0
  1675. edify-1.0.0/tests/snapshots/library/interval.regex +1 -0
  1676. edify-1.0.0/tests/snapshots/library/ip.regex +1 -0
  1677. edify-1.0.0/tests/snapshots/library/ipv4.regex +1 -0
  1678. edify-1.0.0/tests/snapshots/library/ipv6.regex +1 -0
  1679. edify-1.0.0/tests/snapshots/library/isbn.regex +1 -0
  1680. edify-1.0.0/tests/snapshots/library/isin.regex +1 -0
  1681. edify-1.0.0/tests/snapshots/library/iso_date.regex +1 -0
  1682. edify-1.0.0/tests/snapshots/library/issn.regex +1 -0
  1683. edify-1.0.0/tests/snapshots/library/itin.regex +1 -0
  1684. edify-1.0.0/tests/snapshots/library/json.regex +1 -0
  1685. edify-1.0.0/tests/snapshots/library/jsonapi.regex +1 -0
  1686. edify-1.0.0/tests/snapshots/library/jwt.regex +1 -0
  1687. edify-1.0.0/tests/snapshots/library/keyring.regex +1 -0
  1688. edify-1.0.0/tests/snapshots/library/lei.regex +1 -0
  1689. edify-1.0.0/tests/snapshots/library/locale.regex +1 -0
  1690. edify-1.0.0/tests/snapshots/library/mac.regex +1 -0
  1691. edify-1.0.0/tests/snapshots/library/makefile.regex +1 -0
  1692. edify-1.0.0/tests/snapshots/library/manifest.regex +1 -0
  1693. edify-1.0.0/tests/snapshots/library/medical.regex +1 -0
  1694. edify-1.0.0/tests/snapshots/library/meid.regex +1 -0
  1695. edify-1.0.0/tests/snapshots/library/mfa.regex +1 -0
  1696. edify-1.0.0/tests/snapshots/library/mgrs.regex +1 -0
  1697. edify-1.0.0/tests/snapshots/library/mimetype.regex +1 -0
  1698. edify-1.0.0/tests/snapshots/library/mmsi.regex +1 -0
  1699. edify-1.0.0/tests/snapshots/library/mnemonic.regex +1 -0
  1700. edify-1.0.0/tests/snapshots/library/mobi.regex +1 -0
  1701. edify-1.0.0/tests/snapshots/library/mpn.regex +1 -0
  1702. edify-1.0.0/tests/snapshots/library/msgpack.regex +1 -0
  1703. edify-1.0.0/tests/snapshots/library/natural.regex +1 -0
  1704. edify-1.0.0/tests/snapshots/library/nginx.regex +1 -0
  1705. edify-1.0.0/tests/snapshots/library/nonce.regex +1 -0
  1706. edify-1.0.0/tests/snapshots/library/number.regex +1 -0
  1707. edify-1.0.0/tests/snapshots/library/numeric.regex +1 -0
  1708. edify-1.0.0/tests/snapshots/library/oauth.regex +1 -0
  1709. edify-1.0.0/tests/snapshots/library/odt.regex +1 -0
  1710. edify-1.0.0/tests/snapshots/library/offset.regex +1 -0
  1711. edify-1.0.0/tests/snapshots/library/openapi.regex +1 -0
  1712. edify-1.0.0/tests/snapshots/library/openid.regex +1 -0
  1713. edify-1.0.0/tests/snapshots/library/orc.regex +1 -0
  1714. edify-1.0.0/tests/snapshots/library/orcid.regex +1 -0
  1715. edify-1.0.0/tests/snapshots/library/ordinal.regex +1 -0
  1716. edify-1.0.0/tests/snapshots/library/otp.regex +1 -0
  1717. edify-1.0.0/tests/snapshots/library/package.regex +1 -0
  1718. edify-1.0.0/tests/snapshots/library/pager.regex +1 -0
  1719. edify-1.0.0/tests/snapshots/library/palette.regex +1 -0
  1720. edify-1.0.0/tests/snapshots/library/parquet.regex +1 -0
  1721. edify-1.0.0/tests/snapshots/library/passkey.regex +1 -0
  1722. edify-1.0.0/tests/snapshots/library/password.regex +1 -0
  1723. edify-1.0.0/tests/snapshots/library/path.regex +0 -0
  1724. edify-1.0.0/tests/snapshots/library/pdf.regex +1 -0
  1725. edify-1.0.0/tests/snapshots/library/peg.regex +1 -0
  1726. edify-1.0.0/tests/snapshots/library/pem.regex +1 -0
  1727. edify-1.0.0/tests/snapshots/library/percentage.regex +1 -0
  1728. edify-1.0.0/tests/snapshots/library/pest.regex +1 -0
  1729. edify-1.0.0/tests/snapshots/library/pgp.regex +1 -0
  1730. edify-1.0.0/tests/snapshots/library/phone.regex +1 -0
  1731. edify-1.0.0/tests/snapshots/library/pin.regex +1 -0
  1732. edify-1.0.0/tests/snapshots/library/place.regex +1 -0
  1733. edify-1.0.0/tests/snapshots/library/plate.regex +1 -0
  1734. edify-1.0.0/tests/snapshots/library/plus.regex +1 -0
  1735. edify-1.0.0/tests/snapshots/library/pmc.regex +1 -0
  1736. edify-1.0.0/tests/snapshots/library/pmid.regex +1 -0
  1737. edify-1.0.0/tests/snapshots/library/port.regex +1 -0
  1738. edify-1.0.0/tests/snapshots/library/postal.regex +1 -0
  1739. edify-1.0.0/tests/snapshots/library/pptx.regex +1 -0
  1740. edify-1.0.0/tests/snapshots/library/printable.regex +0 -0
  1741. edify-1.0.0/tests/snapshots/library/protobuf.regex +1 -0
  1742. edify-1.0.0/tests/snapshots/library/ptr.regex +1 -0
  1743. edify-1.0.0/tests/snapshots/library/ratio.regex +1 -0
  1744. edify-1.0.0/tests/snapshots/library/readme.regex +1 -0
  1745. edify-1.0.0/tests/snapshots/library/ref.regex +1 -0
  1746. edify-1.0.0/tests/snapshots/library/refresh.regex +1 -0
  1747. edify-1.0.0/tests/snapshots/library/regex.regex +1 -0
  1748. edify-1.0.0/tests/snapshots/library/robots.regex +1 -0
  1749. edify-1.0.0/tests/snapshots/library/roman.regex +1 -0
  1750. edify-1.0.0/tests/snapshots/library/routing.regex +1 -0
  1751. edify-1.0.0/tests/snapshots/library/rss.regex +1 -0
  1752. edify-1.0.0/tests/snapshots/library/rtf.regex +1 -0
  1753. edify-1.0.0/tests/snapshots/library/saml.regex +1 -0
  1754. edify-1.0.0/tests/snapshots/library/scientific.regex +1 -0
  1755. edify-1.0.0/tests/snapshots/library/script.regex +1 -0
  1756. edify-1.0.0/tests/snapshots/library/secret.regex +1 -0
  1757. edify-1.0.0/tests/snapshots/library/sedol.regex +1 -0
  1758. edify-1.0.0/tests/snapshots/library/semver.regex +1 -0
  1759. edify-1.0.0/tests/snapshots/library/session.regex +1 -0
  1760. edify-1.0.0/tests/snapshots/library/shebang.regex +1 -0
  1761. edify-1.0.0/tests/snapshots/library/signature.regex +1 -0
  1762. edify-1.0.0/tests/snapshots/library/signing.regex +1 -0
  1763. edify-1.0.0/tests/snapshots/library/sitemap.regex +1 -0
  1764. edify-1.0.0/tests/snapshots/library/sku.regex +1 -0
  1765. edify-1.0.0/tests/snapshots/library/slug.regex +1 -0
  1766. edify-1.0.0/tests/snapshots/library/soap.regex +1 -0
  1767. edify-1.0.0/tests/snapshots/library/socket.regex +1 -0
  1768. edify-1.0.0/tests/snapshots/library/sortcode.regex +1 -0
  1769. edify-1.0.0/tests/snapshots/library/ssh.regex +1 -0
  1770. edify-1.0.0/tests/snapshots/library/ssn.regex +1 -0
  1771. edify-1.0.0/tests/snapshots/library/sso.regex +1 -0
  1772. edify-1.0.0/tests/snapshots/library/subdomain.regex +1 -0
  1773. edify-1.0.0/tests/snapshots/library/subnet.regex +1 -0
  1774. edify-1.0.0/tests/snapshots/library/svg.regex +1 -0
  1775. edify-1.0.0/tests/snapshots/library/swagger.regex +1 -0
  1776. edify-1.0.0/tests/snapshots/library/swatch.regex +1 -0
  1777. edify-1.0.0/tests/snapshots/library/tex.regex +1 -0
  1778. edify-1.0.0/tests/snapshots/library/time.regex +1 -0
  1779. edify-1.0.0/tests/snapshots/library/timestamp.regex +1 -0
  1780. edify-1.0.0/tests/snapshots/library/timezone.regex +1 -0
  1781. edify-1.0.0/tests/snapshots/library/tin.regex +1 -0
  1782. edify-1.0.0/tests/snapshots/library/tld.regex +1 -0
  1783. edify-1.0.0/tests/snapshots/library/token.regex +1 -0
  1784. edify-1.0.0/tests/snapshots/library/toml.regex +2 -0
  1785. edify-1.0.0/tests/snapshots/library/tsv.regex +7 -0
  1786. edify-1.0.0/tests/snapshots/library/unicode.regex +0 -0
  1787. edify-1.0.0/tests/snapshots/library/uri.regex +1 -0
  1788. edify-1.0.0/tests/snapshots/library/url.regex +1 -0
  1789. edify-1.0.0/tests/snapshots/library/useragent.regex +1 -0
  1790. edify-1.0.0/tests/snapshots/library/username.regex +1 -0
  1791. edify-1.0.0/tests/snapshots/library/uuid.regex +1 -0
  1792. edify-1.0.0/tests/snapshots/library/vat.regex +1 -0
  1793. edify-1.0.0/tests/snapshots/library/vehicle.regex +1 -0
  1794. edify-1.0.0/tests/snapshots/library/version.regex +1 -0
  1795. edify-1.0.0/tests/snapshots/library/vin.regex +1 -0
  1796. edify-1.0.0/tests/snapshots/library/wallet.regex +1 -0
  1797. edify-1.0.0/tests/snapshots/library/webauthn.regex +1 -0
  1798. edify-1.0.0/tests/snapshots/library/webhook.regex +1 -0
  1799. edify-1.0.0/tests/snapshots/library/word.regex +1 -0
  1800. edify-1.0.0/tests/snapshots/library/x509.regex +1 -0
  1801. edify-1.0.0/tests/snapshots/library/xlsx.regex +1 -0
  1802. edify-1.0.0/tests/snapshots/library/xml.regex +1 -0
  1803. edify-1.0.0/tests/snapshots/library/yaml.regex +1 -0
  1804. edify-1.0.0/tests/snapshots/library/year.regex +1 -0
  1805. edify-1.0.0/tests/snapshots/library/zip_code.regex +1 -0
  1806. edify-1.0.0/tests/testing/snapshots.test.py +105 -0
  1807. edify-1.0.0/tests/tools/changes.test.py +110 -0
  1808. edify-1.0.0/tests/tools/surface.test.py +83 -0
  1809. edify-0.3.0/.bumpversion.cfg +0 -25
  1810. edify-0.3.0/.coveragerc +0 -16
  1811. edify-0.3.0/.editorconfig +0 -20
  1812. edify-0.3.0/.github/workflows/github-actions.yml +0 -194
  1813. edify-0.3.0/.pre-commit-config.yaml +0 -24
  1814. edify-0.3.0/.readthedocs.yml +0 -13
  1815. edify-0.3.0/CONTRIBUTING.rst +0 -91
  1816. edify-0.3.0/LICENSE +0 -201
  1817. edify-0.3.0/MANIFEST.in +0 -23
  1818. edify-0.3.0/PKG-INFO +0 -399
  1819. edify-0.3.0/README.rst +0 -269
  1820. edify-0.3.0/ci/requirements.txt +0 -5
  1821. edify-0.3.0/docs/authors.rst +0 -1
  1822. edify-0.3.0/docs/built-in/index.rst +0 -1022
  1823. edify-0.3.0/docs/conf.py +0 -54
  1824. edify-0.3.0/docs/index.rst +0 -20
  1825. edify-0.3.0/docs/readme.rst +0 -1
  1826. edify-0.3.0/docs/regex-builder/builder/index.rst +0 -937
  1827. edify-0.3.0/docs/regex-builder/flags/index.rst +0 -96
  1828. edify-0.3.0/docs/regex-builder/index.rst +0 -9
  1829. edify-0.3.0/docs/requirements.txt +0 -2
  1830. edify-0.3.0/docs/spelling_wordlist.txt +0 -11
  1831. edify-0.3.0/images/cover.png +0 -0
  1832. edify-0.3.0/images/logo_1500px.png +0 -0
  1833. edify-0.3.0/images/logo_500px.png +0 -0
  1834. edify-0.3.0/images/logo_no_text_1500px.png +0 -0
  1835. edify-0.3.0/images/logo_no_text_500px.png +0 -0
  1836. edify-0.3.0/images/logo_no_text_black_1500px.png +0 -0
  1837. edify-0.3.0/images/logo_no_text_black_500px.png +0 -0
  1838. edify-0.3.0/images/logo_no_text_t_1500px.png +0 -0
  1839. edify-0.3.0/images/logo_no_text_t_black_1500px.png +0 -0
  1840. edify-0.3.0/images/logo_t_1500px.png +0 -0
  1841. edify-0.3.0/images/logo_t_500px.png +0 -0
  1842. edify-0.3.0/images/logo_t_black_1500px.png +0 -0
  1843. edify-0.3.0/images/logo_t_black_500px.png +0 -0
  1844. edify-0.3.0/images/logo_wob_1500px.png +0 -0
  1845. edify-0.3.0/images/logo_wob_500px.png +0 -0
  1846. edify-0.3.0/pyproject.toml +0 -10
  1847. edify-0.3.0/pytest.ini +0 -28
  1848. edify-0.3.0/setup.cfg +0 -16
  1849. edify-0.3.0/setup.py +0 -81
  1850. edify-0.3.0/src/edify/__init__.py +0 -4
  1851. edify-0.3.0/src/edify/builder/builder.py +0 -532
  1852. edify-0.3.0/src/edify/builder/errors.py +0 -73
  1853. edify-0.3.0/src/edify/builder/helpers/core.py +0 -79
  1854. edify-0.3.0/src/edify/builder/helpers/quantifiers.py +0 -11
  1855. edify-0.3.0/src/edify/builder/helpers/regex_vars.py +0 -1
  1856. edify-0.3.0/src/edify/builder/helpers/t.py +0 -49
  1857. edify-0.3.0/src/edify/library/__init__.py +0 -17
  1858. edify-0.3.0/src/edify/library/date.py +0 -34
  1859. edify-0.3.0/src/edify/library/guid.py +0 -15
  1860. edify-0.3.0/src/edify/library/ip.py +0 -34
  1861. edify-0.3.0/src/edify/library/mac.py +0 -17
  1862. edify-0.3.0/src/edify/library/mail.py +0 -34
  1863. edify-0.3.0/src/edify/library/password.py +0 -40
  1864. edify-0.3.0/src/edify/library/phone.py +0 -19
  1865. edify-0.3.0/src/edify/library/ssn.py +0 -17
  1866. edify-0.3.0/src/edify/library/support/zip.py +0 -253
  1867. edify-0.3.0/src/edify/library/url.py +0 -39
  1868. edify-0.3.0/src/edify/library/uuid.py +0 -14
  1869. edify-0.3.0/src/edify/library/zip.py +0 -29
  1870. edify-0.3.0/src/edify.egg-info/PKG-INFO +0 -399
  1871. edify-0.3.0/src/edify.egg-info/SOURCES.txt +0 -85
  1872. edify-0.3.0/src/edify.egg-info/dependency_links.txt +0 -1
  1873. edify-0.3.0/src/edify.egg-info/not-zip-safe +0 -1
  1874. edify-0.3.0/src/edify.egg-info/top_level.txt +0 -1
  1875. edify-0.3.0/tests/test_builder.py +0 -518
  1876. edify-0.3.0/tests/test_date.py +0 -57
  1877. edify-0.3.0/tests/test_email.py +0 -89
  1878. edify-0.3.0/tests/test_ip.py +0 -35
  1879. edify-0.3.0/tests/test_phone.py +0 -26
  1880. edify-0.3.0/tests/test_url.py +0 -63
  1881. edify-0.3.0/tests/test_zip.py +0 -34
  1882. edify-0.3.0/tests.local.sh +0 -26
  1883. edify-0.3.0/tox.ini +0 -78
  1884. {edify-0.3.0 → edify-1.0.0}/AUTHORS.rst +0 -0
  1885. /edify-0.3.0/images/logo_no_text_t_black_500px.png → /edify-1.0.0/docs/_theme/edify/static/img/logo-dark-on-light.png +0 -0
  1886. /edify-0.3.0/images/logo_no_text_t_500px.png → /edify-1.0.0/docs/_theme/edify/static/img/logo-light-on-dark.png +0 -0
  1887. {edify-0.3.0 → edify-1.0.0}/docs/changelog.rst +0 -0
  1888. {edify-0.3.0 → edify-1.0.0}/docs/contributing.rst +0 -0
  1889. /edify-0.3.0/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*
@@ -1,6 +1,54 @@
1
1
 
2
2
  Changelog
3
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
+
4
52
  0.3.0 (2026-04-29)
5
53
  ------------------
6
54
 
@@ -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