Open bsarden opened 3 years ago
Internally I do see one recent user contributed library that implements its own DEFINE_path
for use with absl
. The gist of that goes something like this (simplified for illustration purposes) in apath_flag.py
library:
flags.disclaim_key_flags() # Prevent absl from attributing flags to this module.
class _PathParser(flags.ArgumentParser):
def parse(self, value):
return pathlib.PurePath(value)
class _PathSerializer(flags.ArgumentSerializer):
def serialize(self, value):
return str(value)
def DEFINE_path(...):
return flags.DEFINE(_PathParser(), name, default, help, flag_values,
_PathSerializer(), **kwargs)
I agree, it'd make sense to add something like that to absl itself as pathlib is gaining popularity.
Internal source: pyglib.contrib.gpathlib
- If we do this, presumably we might just refactor it out of that.
Just wondering if there was any update on this? I'd say the pathlib
library is fairly standard now so it would be nice to have support from absl
if possible.
Yes this is in my queue, hopefully I can get to it after the holidays if not earlier.
Perhaps DEFINE_path
can happen by these holidays? :-)
etils
has DEFINE_path
. It returns a pathlib
object. See the etils.epath
docs.
_PATH = epath.DEFINE_path('path', None, 'Path to input file.')
This is a Googler-project, so may be what gps was describing. Or maybe not :)
Are there any plans to support a
flags.DEFINE_path
or something similar that utilizes python'spathlib
module to support declaringos.PathLike
operations for the default option?For context, I often find myself doing the following:
It would be awesome if there was an easy way to define a
Path
object from theDEFINE_
definition in the first place. If adding such a feature is not feasible, I'm curious how other people are usingpathlib
withabsl.flags
as well.Thanks!