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

Reply via email to