Apologies Ivan, I used a bad example. A specific case is where the name = "ADFORM__DELIVERY" and the namespace = "io.2sixty":
>>> fullname='io.2sixty.ADFORM__DELIVERY' >>> _RE_FULL_NAME = re.compile( ... r'^' ... r'[.]?(?:[A-Za-z_][A-Za-z0-9_]*[.])*' # optional namespace ... r'([A-Za-z_][A-Za-z0-9_]*)' # name ... r'$' ... ) >>> print(_RE_FULL_NAME.match(fullname)) None On Thu, 26 Sep 2019 at 19:09, Ivan Greene <[email protected]> wrote: > In a Python 3 repl, a full name like ‘org.apache.avro.ipc.Foo’ matches > this pattern. It looks like the pattern you suggest is not used to prevent > repeating full stops. > > —Ivan > > > On Sep 26, 2019, at 12:42 PM, Neil McBride > <[email protected]> wrote: > > > > Hello, > > > > We're unable to make use of the Python 3 Avro package as it does not > allow > > full stops within the namespace; they will fail with "Invalid schema name > > %r infered from name %r and namespace %r.". An example namespace is > > org.apache.avro.ipc. > > > > The regex is in: > > > > https://github.com/apache/avro/blob/master/lang/py3/avro/schema.py#L236 > > > > _RE_FULL_NAME = re.compile( > > r'^' > > r'[.]?(?:[A-Za-z_][A-Za-z0-9_]*[.])*' # optional namespace > > r'([A-Za-z_][A-Za-z0-9_]*)' # name > > r'$' > > ) > > > > Is there a reason why the validation for _RE_FULL_NAME could not be > > r'[A-Za-z_][A-Za-z0-9_.]* > > > > Thanks > >
