Skip to content

Commit 92b31a5

Browse files
Merge pull request #242 from ARGA-Genomes/argparserKwargs
Argparser Kwargs
2 parents 55ca02c + 61fa30e commit 92b31a5

File tree

9 files changed

+25
-22
lines changed

9 files changed

+25
-22
lines changed

src/lib/data/argParser.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def __init__(self, description: str = "", reprepareHelp: str = "Force redoing so
1818
def addArgument(self, *args, **kwargs) -> None:
1919
self._parser.add_argument(*args, **kwargs)
2020

21-
def parseArgs(self, *args, kwargsDict: bool = False, **kwargs) -> tuple[list[BasicDB], list[Flag], Namespace | dict]:
21+
def parseArgs(self, *args, **kwargs) -> tuple[list[BasicDB], list[Flag], Namespace]:
2222
parsedArgs = self._parser.parse_args(*args, **kwargs)
2323

2424
sources = self._manager.matchSources(self._extract(parsedArgs, "source"))
@@ -31,11 +31,14 @@ def parseArgs(self, *args, kwargsDict: bool = False, **kwargs) -> tuple[list[Bas
3131
flags = [flag for key, flag in Flag._value2member_map_.items() if self._extract(parsedArgs, key)]
3232
constructedSources = self._manager.constructDBs(sources)
3333

34-
return constructedSources, flags, parsedArgs.__dict__ if kwargsDict else parsedArgs
34+
return constructedSources, flags, parsedArgs
3535

3636
def addMutuallyExclusiveGroup(self, *args, **kwargs) -> _MutuallyExclusiveGroup:
3737
return self._parser.add_mutually_exclusive_group(*args, **kwargs)
3838

39+
def convertDict(self, ns: Namespace) -> dict:
40+
return ns.__dict__
41+
3942
def _extract(self, namespace: Namespace, attribute: str) -> any:
4043
attr = getattr(namespace, attribute)
4144
delattr(namespace, attribute)

src/tools/convert.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
reprepareHelp="Force retrieval of map",
88
)
99

10-
sources, flags, kwargs = parser.parseArgs()
10+
sources, flags, args = parser.parseArgs()
1111
for source in sources:
1212
source.create(Step.CONVERSION, flags)

src/tools/download.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
reprepareHelp="Force retrieval of download information"
88
)
99

10-
sources, flags, kwargs = parser.parseArgs()
10+
sources, flags, args = parser.parseArgs()
1111
for source in sources:
1212
source.create(Step.DOWNLOADING, flags)

src/tools/package.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
if __name__ == '__main__':
44
parser = ArgParser(description="Package converted data")
55

6-
sources, flags, kwargs = parser.parseArgs()
6+
sources, flags, args = parser.parseArgs()
77
for source in sources:
88
source.package()

src/tools/process.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
if __name__ == '__main__':
55
parser = ArgParser(description="Prepare for DwC conversion")
66

7-
sources, flags, kwargs = parser.parseArgs()
7+
sources, flags, args = parser.parseArgs()
88
for source in sources:
99
source.create(Step.PROCESSING, flags)

src/tools/purgeSource.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
parser = ArgParser(description="Clean up source to save space")
77
parser.addArgument("-r", "--raw", action="store_true", help="Clear raw/downloaded files too")
88

9-
sources, flags, kwargs = parser.parseArgs()
9+
sources, flags, args = parser.parseArgs()
1010
for source in sources:
1111
dataDir = source.baseDir / "data"
1212

src/tools/sampleConversion.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
columnGroup.add_argument("-m", "--mapped", action="store_true", help="Get only mapped fields")
1313
columnGroup.add_argument("-U", "--unmapped", action="store_true", help="Get only unmapped fields")
1414

15-
sources, flags, kwargs = parser.parseArgs()
16-
suffix = ".tsv" if kwargs.tsv else ".csv"
17-
delim = "\t" if kwargs.tsv else ","
15+
sources, flags, args = parser.parseArgs()
16+
suffix = ".tsv" if args.tsv else ".csv"
17+
delim = "\t" if args.tsv else ","
1818

1919
for source in sources:
2020
source._prepare(Step.CONVERSION, flags)
@@ -26,22 +26,22 @@
2626
continue
2727

2828
outputFolder = lastConversionFile.name
29-
if kwargs.mapped:
29+
if args.mapped:
3030
outputFolder += "_mapped"
31-
elif kwargs.unmapped:
31+
elif args.unmapped:
3232
outputFolder += "_unmapped"
3333
outputFolder += "_example"
3434

3535
stackedFile = StackedFile(lastConversionFile)
36-
df = next(stackedFile.loadDataFrameIterator(rows=kwargs.entries))
36+
df = next(stackedFile.loadDataFrameIterator(rows=args.entries))
3737

3838
folderPath = source.exampleDir / outputFolder
3939
folderPath.mkdir(exist_ok=True)
4040

4141
dummpyMap = Map({})
4242

4343
for event in df.columns.levels[0]:
44-
if (kwargs.mapped and event == dummpyMap._unmappedLabel) or (kwargs.unmapped and event != dummpyMap._unmappedLabel):
44+
if (args.mapped and event == dummpyMap._unmappedLabel) or (args.unmapped and event != dummpyMap._unmappedLabel):
4545
continue
4646

4747
fileName = f"{event}{suffix}"

src/tools/samplePreConversion.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ def _collectRecords(iterator: Generator[pd.DataFrame, None, None], entryLimit: i
5252
parser.addArgument('-f', '--firstrow', type=int, default=0, help="First row offset for reading data")
5353
parser.addArgument('-r', '--rows', type=int, help="Maximum amount of rows to read from file")
5454

55-
sources, flags, kwargs = parser.parseArgs()
56-
entryLimit = kwargs.entries
55+
sources, flags, args = parser.parseArgs()
56+
entryLimit = args.entries
5757

5858
for source in sources:
5959
outputDir = source.exampleDir
@@ -67,12 +67,12 @@ def _collectRecords(iterator: Generator[pd.DataFrame, None, None], entryLimit: i
6767
print(f"File {stageFile.path} does not exist, please run all required downloading/processing.")
6868
continue
6969

70-
seed = kwargs.seed if kwargs.seed >= 0 else random.randrange(2**32 - 1) # Max value for pandas seed
70+
seed = args.seed if args.seed >= 0 else random.randrange(2**32 - 1) # Max value for pandas seed
7171
random.seed(seed)
72-
outputPath = outputDir / f"{source.name}_{'fields' if kwargs.ignoreRecord else 'records'}_{kwargs.chunksize}_{seed}.tsv"
72+
outputPath = outputDir / f"{source.name}_{'fields' if args.ignoreRecord else 'records'}_{args.chunksize}_{seed}.tsv"
7373

74-
dfIterator = stageFile.readIterator(kwargs.chunksize, on_bad_lines="skip", low_memory=False)
75-
df = _collectFields(dfIterator, kwargs.entries, seed) if kwargs.ignoreRecord else _collectRecords(dfIterator, kwargs.entries, seed)
74+
dfIterator = stageFile.readIterator(args.chunksize, on_bad_lines="skip", low_memory=False)
75+
df = _collectFields(dfIterator, args.entries, seed) if args.ignoreRecord else _collectRecords(dfIterator, args.entries, seed)
7676

7777
df = dff.removeSpaces(df)
7878
df.index += 1 # Increment index so output is 1-indexed numbers

src/tools/update.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
parser = ArgParser(description="Run update on data source")
66
parser.addArgument("-f", "--force", action="store_true", help="Force update regardless of config")
77

8-
sources, flags, kwargs = parser.parseArgs()
8+
sources, flags, args = parser.parseArgs()
99
for source in sources:
10-
if not source.checkUpdateReady() and not kwargs.force:
10+
if not source.checkUpdateReady() and not args.force:
1111
logging.info(f"Data source '{source}' is not ready for update.")
1212
continue
1313

0 commit comments

Comments
 (0)