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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: corebridge
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Bridge for Stactics AICore
5
5
  Home-page: https://github.com/fenke/corebridge
6
6
  Author: Fenke Meijer
@@ -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='') -> dict:
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
- f"{column_prefix}{str(key).capitalize()}")
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
- column_name = f"{column_prefix}{str(key).capitalize()}" if column_prefix else str(key)
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
- df.set_index( pd.DatetimeIndex(df['ensemble_predTime']), inplace=True)
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('ensemble_predTime', axis=1, inplace=True)
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: corebridge
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Bridge for Stactics AICore
5
5
  Home-page: https://github.com/fenke/corebridge
6
6
  Author: Fenke Meijer
@@ -5,7 +5,7 @@
5
5
  ### Python library ###
6
6
  repo = corebridge
7
7
  lib_name = %(repo)s
8
- version = 0.3.2
8
+ version = 0.3.3
9
9
  min_python = 3.10
10
10
  license = apache2
11
11
  black_formatting = False
@@ -1 +0,0 @@
1
- __version__ = "0.3.2"
File without changes
File without changes
File without changes
File without changes
File without changes