corebridge 0.3.2__tar.gz → 0.3.3__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.
- {corebridge-0.3.2/corebridge.egg-info → corebridge-0.3.3}/PKG-INFO +1 -1
- corebridge-0.3.3/corebridge/__init__.py +1 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/corebridge/_modidx.py +2 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/corebridge/rscript.py +28 -14
- {corebridge-0.3.2 → corebridge-0.3.3/corebridge.egg-info}/PKG-INFO +1 -1
- {corebridge-0.3.2 → corebridge-0.3.3}/settings.ini +1 -1
- corebridge-0.3.2/corebridge/__init__.py +0 -1
- {corebridge-0.3.2 → corebridge-0.3.3}/LICENSE +0 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/MANIFEST.in +0 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/README.md +0 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/corebridge/aicorebridge.py +0 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/corebridge/core.py +0 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/corebridge.egg-info/SOURCES.txt +0 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/corebridge.egg-info/dependency_links.txt +0 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/corebridge.egg-info/entry_points.txt +0 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/corebridge.egg-info/not-zip-safe +0 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/corebridge.egg-info/requires.txt +0 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/corebridge.egg-info/top_level.txt +0 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/setup.cfg +0 -0
- {corebridge-0.3.2 → corebridge-0.3.3}/setup.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.3.3"
|
|
@@ -87,4 +87,6 @@ d = { 'settings': { 'branch': 'main',
|
|
|
87
87
|
'corebridge.rscript.run_rscript_nowait': ( 'rscriptbridge.html#run_rscript_nowait',
|
|
88
88
|
'corebridge/rscript.py'),
|
|
89
89
|
'corebridge.rscript.run_rscript_wait': ('rscriptbridge.html#run_rscript_wait', 'corebridge/rscript.py'),
|
|
90
|
+
'corebridge.rscript.snake_case_to_camel_case': ( 'rscriptbridge.html#snake_case_to_camel_case',
|
|
91
|
+
'corebridge/rscript.py'),
|
|
90
92
|
'corebridge.rscript.unpack_assets': ('rscriptbridge.html#unpack_assets', 'corebridge/rscript.py')}}}
|
|
@@ -6,7 +6,7 @@ __all__ = ['syslog', 'read_chunk_size', 'RScriptProcess', 'get_asset_path', 'get
|
|
|
6
6
|
'calc_hash_from_flowobject', 'calc_hash_from_files', 'calc_hash_from_input_files',
|
|
7
7
|
'calc_hash_from_data_files', 'check_script_inputs', 'check_script_output', 'generate_checksum_file',
|
|
8
8
|
'run_rscript_wait', 'run_rscript_nowait', 'release_script_lock', 'AICoreRScriptModule',
|
|
9
|
-
'recursive_flatten_nested_data']
|
|
9
|
+
'snake_case_to_camel_case', 'recursive_flatten_nested_data']
|
|
10
10
|
|
|
11
11
|
# %% ../nbs/02_rscriptbridge.ipynb 4
|
|
12
12
|
import os, logging, json, hashlib
|
|
@@ -500,9 +500,14 @@ def update_flow(self:AICoreRScriptModule):
|
|
|
500
500
|
|
|
501
501
|
|
|
502
502
|
# %% ../nbs/02_rscriptbridge.ipynb 125
|
|
503
|
+
def snake_case_to_camel_case(snake_case:str) -> str:
|
|
504
|
+
splittext = snake_case.split('_')
|
|
505
|
+
return ''.join([x.capitalize() if n > 0 else x for x,n in zip(splittext, range(len(splittext)))])
|
|
506
|
+
|
|
503
507
|
def recursive_flatten_nested_data(
|
|
504
508
|
data:dict,
|
|
505
|
-
column_prefix:str=''
|
|
509
|
+
column_prefix:str='',
|
|
510
|
+
camel_case=False) -> dict:
|
|
506
511
|
|
|
507
512
|
if isinstance(data, np.ndarray):
|
|
508
513
|
return {column_prefix:data}
|
|
@@ -511,7 +516,7 @@ def recursive_flatten_nested_data(
|
|
|
511
516
|
return reduce(
|
|
512
517
|
lambda R, X: dict(**R, **X) if R else X,
|
|
513
518
|
[
|
|
514
|
-
recursive_flatten_nested_data(value, f"{column_prefix}_{i+1}_")
|
|
519
|
+
recursive_flatten_nested_data(value, f"{column_prefix}_{i+1}_", camel_case)
|
|
515
520
|
for i, value in enumerate(data)
|
|
516
521
|
|
|
517
522
|
],
|
|
@@ -529,7 +534,9 @@ def recursive_flatten_nested_data(
|
|
|
529
534
|
[
|
|
530
535
|
recursive_flatten_nested_data(
|
|
531
536
|
value,
|
|
532
|
-
|
|
537
|
+
snake_case_to_camel_case(column_prefix+'_'+str(key)) if camel_case else column_prefix+'_'+str(key),
|
|
538
|
+
camel_case
|
|
539
|
+
)
|
|
533
540
|
for key, value in data.items()
|
|
534
541
|
],
|
|
535
542
|
{}
|
|
@@ -538,9 +545,12 @@ def recursive_flatten_nested_data(
|
|
|
538
545
|
else:
|
|
539
546
|
key = list(data.keys())[0]
|
|
540
547
|
value = data[key]
|
|
541
|
-
|
|
548
|
+
if column_prefix:
|
|
549
|
+
column_name = snake_case_to_camel_case(column_prefix+'_'+str(key)) if camel_case else column_prefix+'_'+str(key)
|
|
550
|
+
else:
|
|
551
|
+
column_name = snake_case_to_camel_case(str(key)) if camel_case else str(key)
|
|
542
552
|
return recursive_flatten_nested_data(
|
|
543
|
-
value, column_name,
|
|
553
|
+
value, column_name, camel_case
|
|
544
554
|
)
|
|
545
555
|
|
|
546
556
|
|
|
@@ -558,15 +568,19 @@ def write_uploaded_data(
|
|
|
558
568
|
df.reset_index().to_csv(csv_filename, index=False, date_format='%Y-%m-%d %H:%M:%S')
|
|
559
569
|
|
|
560
570
|
@patch
|
|
561
|
-
def read_data(self:AICoreRScriptModule, tag:str=None, **kwargs):
|
|
571
|
+
def read_data(self:AICoreRScriptModule, tag:str=None, camel_case=False, **kwargs):
|
|
572
|
+
|
|
562
573
|
rdata_filename = self.get_save_path(self.data_files_map.get(tag, tag))
|
|
563
574
|
converted = rdata.read_rda(rdata_filename)
|
|
564
575
|
|
|
565
576
|
flattened = recursive_flatten_nested_data(converted)
|
|
566
577
|
df = pd.DataFrame(flattened)
|
|
567
|
-
|
|
578
|
+
|
|
579
|
+
time_column = [k for k,v in df.dtypes.to_dict().items() if 'float' not in str(v)][0]
|
|
580
|
+
df.set_index( pd.DatetimeIndex(df[time_column]), inplace=True)
|
|
568
581
|
df.index.name = 'time'
|
|
569
|
-
df.drop(
|
|
582
|
+
df.drop(time_column, axis=1, inplace=True)
|
|
583
|
+
|
|
570
584
|
return df
|
|
571
585
|
|
|
572
586
|
|
|
@@ -576,10 +590,6 @@ def infer(
|
|
|
576
590
|
self:AICoreRScriptModule,
|
|
577
591
|
data:dict,
|
|
578
592
|
*_,
|
|
579
|
-
writeTag:str=None,
|
|
580
|
-
readTag:str=None,
|
|
581
|
-
timezone:str='UTC',
|
|
582
|
-
recordformat:str='records',
|
|
583
593
|
**kwargs):
|
|
584
594
|
|
|
585
595
|
"""
|
|
@@ -595,6 +605,10 @@ def infer(
|
|
|
595
605
|
|
|
596
606
|
msg += self.update_flow()
|
|
597
607
|
# Pickup params, pop those that are not intended for the processor
|
|
608
|
+
writeTag = kwargs.pop('writeTag', None)
|
|
609
|
+
readTag = kwargs.pop('readTag', None)
|
|
610
|
+
camelCase = bool(kwargs.pop('camelCase', False))
|
|
611
|
+
|
|
598
612
|
lastSeen = kwargs.pop('lastSeen', False)
|
|
599
613
|
recordformat = kwargs.pop('format', "records").lower()
|
|
600
614
|
timezone = kwargs.get('timezone', 'UTC')
|
|
@@ -613,7 +627,7 @@ def infer(
|
|
|
613
627
|
self.write_uploaded_data(df, writeTag)
|
|
614
628
|
|
|
615
629
|
if readTag:
|
|
616
|
-
result = self.read_data(readTag)
|
|
630
|
+
result = self.read_data(readTag, camel_case=camelCase)
|
|
617
631
|
|
|
618
632
|
if reversed:
|
|
619
633
|
result = result[::-1]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.3.2"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|