From 67b86cb1777d4782cfa6d575b8d274d269211b63 Mon Sep 17 00:00:00 2001 From: Alex Braun Date: Thu, 27 Oct 2022 17:28:00 +0000 Subject: [PATCH] 0.6.5 --- docs/.doctrees/environment.pickle | Bin 324728 -> 325908 bytes docs/.doctrees/rolling_pin.doctree | Bin 662357 -> 671540 bytes docs/_modules/index.html | 2 +- docs/_modules/rolling_pin/conform_config.html | 10 +- docs/_modules/rolling_pin/conform_etl.html | 4 +- docs/_modules/rolling_pin/tools.html | 17 +- docs/all_metrics.html | 558 ++++++++++-------- docs/cli.html | 2 +- docs/cyclomatic_complexity_metrics.html | 368 ++++++------ docs/genindex.html | 14 +- docs/halstead_metrics.html | 342 ++++++----- .../d_5a213bf3bfd38e31_conform_config_py.html | 24 +- .../d_5a213bf3bfd38e31_conform_etl_py.html | 12 +- docs/htmlcov/d_5a213bf3bfd38e31_tools_py.html | 337 ++++++----- docs/htmlcov/index.html | 16 +- docs/htmlcov/status.json | 2 +- docs/index.html | 2 +- docs/intro.html | 2 +- docs/maintainability_metrics.html | 10 +- docs/modules.html | 2 +- docs/objects.inv | Bin 1524 -> 1531 bytes docs/plots.html | 8 +- docs/py-modindex.html | 2 +- docs/raw_metrics.html | 46 +- docs/rolling_pin.html | 21 +- docs/search.html | 2 +- docs/searchindex.js | 2 +- pip/version.txt | 2 +- 28 files changed, 991 insertions(+), 816 deletions(-) diff --git a/docs/.doctrees/environment.pickle b/docs/.doctrees/environment.pickle index ddc38eac980ff03cc6343e51926012c11e84277c..46c94ec4ed05e704f050f44d56344a7b1eaa1222 100644 GIT binary patch delta 11928 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 diff --git a/docs/.doctrees/rolling_pin.doctree b/docs/.doctrees/rolling_pin.doctree index ab8cb1c7e8a46cdd76288727ad8002eaf5fd932a..e760dddd0131524e345bb7964acf205952675367 100644 GIT binary patch delta 80078 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 z%0A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 delta 77294 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

4RxBPciHXUt!prpb$yg_%spl-&gM@ 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 rolling-pin

- 0.6.4 + 0.6.5
diff --git a/docs/_modules/rolling_pin/conform_config.html b/docs/_modules/rolling_pin/conform_config.html index 549b1fa..f459eb5 100644 --- a/docs/_modules/rolling_pin/conform_config.html +++ b/docs/_modules/rolling_pin/conform_config.html @@ -28,7 +28,7 @@ rolling-pin
- 0.6.3 + 0.6.5
@@ -120,8 +120,8 @@

Source code for rolling_pin.conform_config

             to target filepaths. Default: [].
         group_rules (Rules): A list of rules for grouping files.
             Default: [].
-        line_rules (Rules): A list of rules for peforming line copies on
-            files belonging to a given group. Default: [].
+        line_rules (Rules): A list of rules for peforming line copies and
+            substitutions on files belonging to a given group. Default: [].
     '''
 
[docs] class SourceRule(Model): path = StringType(required=True, validators=[is_dir]) # type: StringType @@ -139,7 +139,9 @@

Source code for rolling_pin.conform_config

 
[docs] class LineRule(Model): group = StringType(required=True) # type: StringType include = StringType(required=False, serialize_when_none=False) # type: StringType - exclude = StringType(required=False, serialize_when_none=False) # type: StringType
+ exclude = StringType(required=False, serialize_when_none=False) # type: StringType + regex = StringType(required=False) # type: StringType + replace = StringType(required=False) # type: StringType
source_rules = ListType(ModelType(SourceRule), required=True) # type: ListType rename_rules = ListType(ModelType(RenameRule), required=False) # type: ListType diff --git a/docs/_modules/rolling_pin/conform_etl.html b/docs/_modules/rolling_pin/conform_etl.html index d8cd787..9869cc3 100644 --- a/docs/_modules/rolling_pin/conform_etl.html +++ b/docs/_modules/rolling_pin/conform_etl.html @@ -28,7 +28,7 @@ rolling-pin
- 0.6.4 + 0.6.5
@@ -359,6 +359,8 @@

Source code for rolling_pin.conform_etl

                     x,
                     include_regex=rule.get('include', None),
                     exclude_regex=rule.get('exclude', None),
+                    replace_regex=rule.get('regex', None),
+                    replace_value=rule.get('replace', None),
                 )
             )
         data.apply(lambda x: rpt.write_text(x.text, x.target), axis=1)
diff --git a/docs/_modules/rolling_pin/tools.html b/docs/_modules/rolling_pin/tools.html index 483c68d..a688581 100644 --- a/docs/_modules/rolling_pin/tools.html +++ b/docs/_modules/rolling_pin/tools.html @@ -28,7 +28,7 @@ rolling-pin
- 0.6.4 + 0.6.5
@@ -394,8 +394,14 @@

Source code for rolling_pin.tools

     return output
-
[docs]def filter_text(text, include_regex=None, exclude_regex=None): - # type: (str, Optional[str], Optional[str]) -> str +
[docs]def filter_text( + text, # type: str + include_regex=None, # type: Optional[str] + exclude_regex=None, # type: Optional[str] + replace_regex=None, # type: Optional[str] + replace_value='', # type: str +): + # type: (...) -> str ''' Filter given text by applying regular expressions to each line. @@ -405,6 +411,9 @@

Source code for rolling_pin.tools

             Default: None.
         exclude_regex (str, optional): Remove lines that match given regex.
             Default: None.
+        replace_regex (str, optional): Substitutes regex matches in lines with
+            replace_value. Default: None.
+        replace_value (str, optional): Regex substitution value. Default: ''.
 
     Raises:
         AssertionError: If source is not a file.
@@ -417,6 +426,8 @@ 

Source code for rolling_pin.tools

         lines = list(filter(lambda x: re.search(include_regex, x), lines))
     if exclude_regex is not None:
         lines = list(filter(lambda x: not re.search(exclude_regex, x), lines))  # type: ignore
+    if replace_regex is not None:
+        lines = [re.sub(replace_regex, replace_value, x) for x in lines]
     output = '\n'.join(lines)
     return output
diff --git a/docs/all_metrics.html b/docs/all_metrics.html index f3e87b9..31d7ed6 100644 --- a/docs/all_metrics.html +++ b/docs/all_metrics.html @@ -3001,7 +3001,7 @@ NaN NaN 11.0 - 31.0 + 36.0 0.000000 0.0 0.000000 @@ -3033,8 +3033,8 @@ 0.0 NaN NaN - 35.0 41.0 + 47.0 0.000000 0.0 0.000000 @@ -3066,8 +3066,8 @@ 0.0 NaN NaN - 43.0 - 46.0 + 49.0 + 52.0 0.000000 0.0 0.000000 @@ -3099,8 +3099,8 @@ 0.0 NaN NaN - 48.0 - 58.0 + 54.0 + 64.0 0.000000 0.0 0.000000 @@ -3132,8 +3132,8 @@ 0.0 NaN NaN - 60.0 - 74.0 + 66.0 + 80.0 0.000000 0.0 0.000000 @@ -3165,8 +3165,8 @@ 0.0 NaN NaN - 76.0 - 90.0 + 82.0 + 96.0 0.000000 0.0 0.000000 @@ -3198,8 +3198,8 @@ 0.0 NaN NaN - 92.0 - 100.0 + 98.0 + 106.0 0.000000 0.0 0.000000 @@ -3496,7 +3496,7 @@ NaN NaN 244.0 - 281.0 + 283.0 3.796489 10.0 39.863137 @@ -3966,6 +3966,39 @@ 119 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py + test_conform_line_rule_replace + ConformETLTests + function + NaN + 0.000000 + 0.000000 + NaN + 4.0 + NaN + 1.0 + 0.0 + 0.000000 + 0.000000 + 0.0 + 0.0 + 0.0 + NaN + NaN + NaN + NaN + 0.0 + 0.0 + NaN + NaN + 323.0 + 343.0 + 0.000000 + 0.0 + 0.000000 + + + 120 + /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py get_data ConformETLTests function @@ -3997,7 +4030,7 @@ 0.000000 - 120 + 121 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py get_expected ConformETLTests @@ -4030,7 +4063,7 @@ 0.000000 - 121 + 122 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py get_config ConformETLTests @@ -4063,7 +4096,7 @@ 4.754888 - 122 + 123 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py setup ConformETLTests @@ -4096,7 +4129,7 @@ 0.000000 - 123 + 124 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py test_get_data ConformETLTests @@ -4129,7 +4162,7 @@ 0.000000 - 124 + 125 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py test_init ConformETLTests @@ -4162,7 +4195,7 @@ 0.000000 - 125 + 126 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py test_init_empty ConformETLTests @@ -4195,7 +4228,7 @@ 0.000000 - 126 + 127 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py test_from_yaml ConformETLTests @@ -4228,7 +4261,7 @@ 0.000000 - 127 + 128 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py __init__ RadonETL @@ -4261,7 +4294,7 @@ 0.000000 - 128 + 129 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_maintainability_index_dataframe RadonETL @@ -4294,7 +4327,7 @@ 0.000000 - 129 + 130 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_cyclomatic_complexity_dataframe RadonETL @@ -4327,7 +4360,7 @@ 15.509775 - 130 + 131 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_halstead_dataframe RadonETL @@ -4360,7 +4393,7 @@ 0.000000 - 131 + 132 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py write_plots RadonETL @@ -4393,7 +4426,7 @@ 71.699250 - 132 + 133 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py write_tables RadonETL @@ -4426,7 +4459,7 @@ 20.897353 - 133 + 134 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py report RadonETL @@ -4459,7 +4492,7 @@ 0.000000 - 134 + 135 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py data RadonETL @@ -4492,7 +4525,7 @@ 0.000000 - 135 + 136 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py raw_metrics RadonETL @@ -4525,7 +4558,7 @@ 0.000000 - 136 + 137 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py maintainability_index RadonETL @@ -4558,7 +4591,7 @@ 0.000000 - 137 + 138 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py cyclomatic_complexity_metrics RadonETL @@ -4591,7 +4624,7 @@ 0.000000 - 138 + 139 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py halstead_metrics RadonETL @@ -4624,7 +4657,7 @@ 0.000000 - 139 + 140 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_radon_data RadonETL @@ -4657,7 +4690,7 @@ 12.000000 - 140 + 141 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_radon_report RadonETL @@ -4690,7 +4723,7 @@ 0.000000 - 141 + 142 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_raw_metrics_dataframe RadonETL @@ -4723,7 +4756,7 @@ 0.000000 - 142 + 143 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py get_fake_repo RadonEtlTests @@ -4756,7 +4789,7 @@ 4.754888 - 143 + 144 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_write_plots RadonEtlTests @@ -4789,7 +4822,7 @@ 0.000000 - 144 + 145 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_write_tables RadonEtlTests @@ -4822,7 +4855,7 @@ 0.000000 - 145 + 146 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py get_fake_repo_data RadonEtlTests @@ -4855,7 +4888,7 @@ 0.000000 - 146 + 147 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py assert_equal RadonEtlTests @@ -4888,7 +4921,7 @@ 0.000000 - 147 + 148 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_init RadonEtlTests @@ -4921,7 +4954,7 @@ 0.000000 - 148 + 149 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_report RadonEtlTests @@ -4954,7 +4987,7 @@ 0.000000 - 149 + 150 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_data RadonEtlTests @@ -4987,7 +5020,7 @@ 0.000000 - 150 + 151 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_raw_metrics RadonEtlTests @@ -5020,7 +5053,7 @@ 4.754888 - 151 + 152 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_maintainability_index RadonEtlTests @@ -5053,7 +5086,7 @@ 4.754888 - 152 + 153 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_cyclomatic_complexity_metrics RadonEtlTests @@ -5086,7 +5119,7 @@ 6.339850 - 153 + 154 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_halstead_metrics RadonEtlTests @@ -5119,7 +5152,7 @@ 0.000000 - 154 + 155 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py __init__ RepoETL @@ -5152,7 +5185,7 @@ 0.000000 - 155 + 156 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py to_html RepoETL @@ -5185,7 +5218,7 @@ 4.754888 - 156 + 157 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py write RepoETL @@ -5218,7 +5251,7 @@ 15.509775 - 157 + 158 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py write_repo_architecture NaN @@ -5251,7 +5284,7 @@ 2.000000 - 158 + 159 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py write_repo_plots_and_tables NaN @@ -5284,7 +5317,7 @@ 0.000000 - 159 + 160 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _get_imports RepoETL @@ -5317,7 +5350,7 @@ 2.000000 - 160 + 161 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _get_data RepoETL @@ -5350,7 +5383,7 @@ 118.592570 - 161 + 162 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _calculate_coordinates RepoETL @@ -5383,7 +5416,7 @@ 108.418050 - 162 + 163 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _anneal_coordinate RepoETL @@ -5416,7 +5449,7 @@ 39.863137 - 163 + 164 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _center_coordinate RepoETL @@ -5449,7 +5482,7 @@ 43.019550 - 164 + 165 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _to_networkx_graph RepoETL @@ -5482,7 +5515,7 @@ 0.000000 - 165 + 166 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py to_networkx_graph RepoETL @@ -5515,7 +5548,7 @@ 0.000000 - 166 + 167 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py to_dot_graph RepoETL @@ -5548,7 +5581,7 @@ 100.078200 - 167 + 168 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py to_dataframe RepoETL @@ -5581,7 +5614,7 @@ 0.000000 - 168 + 169 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py create_repo RepoEtlTests @@ -5614,7 +5647,7 @@ 0.000000 - 169 + 170 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_dataframe RepoEtlTests @@ -5647,7 +5680,7 @@ 0.000000 - 170 + 171 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_html RepoEtlTests @@ -5680,7 +5713,7 @@ 0.000000 - 171 + 172 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_write RepoEtlTests @@ -5713,7 +5746,7 @@ 4.754888 - 172 + 173 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py get_repo_data RepoEtlTests @@ -5746,7 +5779,7 @@ 0.000000 - 173 + 174 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py get_fake_repo RepoEtlFuncTests @@ -5779,7 +5812,7 @@ 4.754888 - 174 + 175 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_write_repo_plots_and_tables RepoEtlFuncTests @@ -5812,7 +5845,7 @@ 0.000000 - 175 + 176 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_write_repo_architecture RepoEtlFuncTests @@ -5845,7 +5878,7 @@ 0.000000 - 176 + 177 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_init RepoEtlTests @@ -5878,7 +5911,7 @@ 0.000000 - 177 + 178 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_get_imports RepoEtlTests @@ -5911,7 +5944,7 @@ 0.000000 - 178 + 179 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_get_data RepoEtlTests @@ -5944,7 +5977,7 @@ 0.000000 - 179 + 180 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_calculate_coordinates RepoEtlTests @@ -5977,7 +6010,7 @@ 31.019550 - 180 + 181 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_anneal_coordinate RepoEtlTests @@ -6010,7 +6043,7 @@ 3.000000 - 181 + 182 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_center_coordinate RepoEtlTests @@ -6043,7 +6076,7 @@ 0.000000 - 182 + 183 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_networkx_graph RepoEtlTests @@ -6076,7 +6109,7 @@ 25.266194 - 183 + 184 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_dot_graph_error RepoEtlTests @@ -6109,7 +6142,7 @@ 0.000000 - 184 + 185 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_dot_graph RepoEtlTests @@ -6142,7 +6175,7 @@ 38.039100 - 185 + 186 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py is_iterable NaN @@ -6175,7 +6208,7 @@ 4.754888 - 186 + 187 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py read_text NaN @@ -6201,14 +6234,14 @@ 0.0 NaN NaN - 341.0 - 357.0 + 352.0 + 368.0 0.000000 0.0 0.000000 - 187 + 188 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py write_text NaN @@ -6234,14 +6267,14 @@ 0.0 NaN NaN - 360.0 - 372.0 + 371.0 + 383.0 0.000000 0.0 0.000000 - 188 + 189 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py copy_file NaN @@ -6267,14 +6300,14 @@ 0.0 NaN NaN - 375.0 - 389.0 + 386.0 + 400.0 0.000000 0.0 0.000000 - 189 + 190 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py move_file NaN @@ -6300,14 +6333,14 @@ 0.0 NaN NaN - 392.0 - 407.0 + 403.0 + 418.0 0.000000 0.0 0.000000 - 190 + 191 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py dot_to_html NaN @@ -6333,14 +6366,14 @@ 2.0 NaN NaN - 411.0 - 444.0 + 422.0 + 455.0 0.132080 3.0 4.754888 - 191 + 192 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py write_dot_graph NaN @@ -6366,14 +6399,14 @@ 2.0 NaN NaN - 447.0 - 480.0 + 458.0 + 491.0 0.132080 3.0 4.754888 - 192 + 193 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py is_dictlike NaN @@ -6406,7 +6439,7 @@ 4.754888 - 193 + 194 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py is_listlike NaN @@ -6439,7 +6472,7 @@ 0.000000 - 194 + 195 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py flatten NaN @@ -6472,7 +6505,7 @@ 28.529325 - 195 + 196 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py nest NaN @@ -6505,7 +6538,7 @@ 24.000000 - 196 + 197 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py unembed NaN @@ -6538,7 +6571,7 @@ 15.509775 - 197 + 198 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py list_all_files NaN @@ -6571,7 +6604,7 @@ 88.000000 - 198 + 199 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py directory_to_dataframe NaN @@ -6604,7 +6637,7 @@ 0.000000 - 199 + 200 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py get_parent_fields NaN @@ -6637,40 +6670,40 @@ 13.931569 - 200 + 201 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py filter_text NaN function NaN - 0.007486 - 13.609640 + 0.011623 + 21.651484 NaN 0.0 NaN - 3.0 + 5.0 0.0 1.000000 - 22.458839 + 34.869175 2.0 - 5.0 - 8.0 + 7.0 + 11.0 NaN NaN NaN NaN - 3.0 - 5.0 + 4.0 + 7.0 NaN NaN 314.0 - 338.0 - 1.247713 - 7.0 - 22.458839 + 349.0 + 1.937176 + 9.0 + 34.869175 - 201 + 202 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py get_simple_blob ToolsTests @@ -6703,7 +6736,7 @@ 0.000000 - 202 + 203 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_complex_no_embed ToolsTests @@ -6736,7 +6769,7 @@ 0.000000 - 203 + 204 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_complex_separator_no_embed ToolsTests @@ -6769,7 +6802,7 @@ 0.000000 - 204 + 205 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_double ToolsTests @@ -6802,7 +6835,7 @@ 0.000000 - 205 + 206 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_nest ToolsTests @@ -6835,7 +6868,7 @@ 0.000000 - 206 + 207 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_nest_separator ToolsTests @@ -6868,7 +6901,7 @@ 0.000000 - 207 + 208 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_nest_double ToolsTests @@ -6901,7 +6934,7 @@ 0.000000 - 208 + 209 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_unembed ToolsTests @@ -6934,7 +6967,7 @@ 0.000000 - 209 + 210 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_unembed_nest_flatten_cycle ToolsTests @@ -6967,7 +7000,7 @@ 4.754888 - 210 + 211 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files ToolsTests @@ -7000,7 +7033,7 @@ 0.000000 - 211 + 212 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py create_files ToolsTests @@ -7033,7 +7066,7 @@ 0.000000 - 212 + 213 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py get_complex_blob ToolsTests @@ -7066,7 +7099,7 @@ 0.000000 - 213 + 214 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files_errors ToolsTests @@ -7099,7 +7132,7 @@ 0.000000 - 214 + 215 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files_include ToolsTests @@ -7132,7 +7165,7 @@ 0.000000 - 215 + 216 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files_exclude ToolsTests @@ -7165,7 +7198,7 @@ 0.000000 - 216 + 217 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files_include_exclude ToolsTests @@ -7198,7 +7231,7 @@ 0.000000 - 217 + 218 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_get_parent_fields ToolsTests @@ -7231,7 +7264,7 @@ 0.000000 - 218 + 219 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_dot_to_html ToolsTests @@ -7264,7 +7297,7 @@ 4.754888 - 219 + 220 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_write_dot_graph ToolsTests @@ -7297,7 +7330,7 @@ 13.931569 - 220 + 221 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_directory_to_dataframe ToolsTests @@ -7330,7 +7363,7 @@ 0.000000 - 221 + 222 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_filter_text ToolsTests @@ -7363,9 +7396,9 @@ 0.000000 - 222 + 223 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py - test_read_text + test_filter_text_replace ToolsTests function NaN @@ -7390,13 +7423,13 @@ NaN NaN 498.0 - 508.0 + 507.0 0.000000 0.0 0.000000 - 223 + 224 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py get_nested_dict ToolsTests @@ -7429,7 +7462,40 @@ 0.000000 - 224 + 225 + /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py + test_read_text + ToolsTests + function + NaN + 0.000000 + 0.000000 + NaN + 4.0 + NaN + 1.0 + 0.0 + 0.000000 + 0.000000 + 0.0 + 0.0 + 0.0 + NaN + NaN + NaN + NaN + 0.0 + 0.0 + NaN + NaN + 509.0 + 519.0 + 0.000000 + 0.0 + 0.000000 + + + 226 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_write_text ToolsTests @@ -7455,14 +7521,14 @@ 0.0 NaN NaN - 510.0 - 518.0 + 521.0 + 529.0 0.000000 0.0 0.000000 - 225 + 227 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_copy_file ToolsTests @@ -7488,14 +7554,14 @@ 0.0 NaN NaN - 520.0 - 533.0 + 531.0 + 544.0 0.000000 0.0 0.000000 - 226 + 228 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_copy_file_error ToolsTests @@ -7521,14 +7587,14 @@ 0.0 NaN NaN - 535.0 - 539.0 + 546.0 + 550.0 0.000000 0.0 0.000000 - 227 + 229 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_move_file ToolsTests @@ -7554,14 +7620,14 @@ 0.0 NaN NaN - 541.0 - 554.0 + 552.0 + 565.0 0.000000 0.0 0.000000 - 228 + 230 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_move_file_error ToolsTests @@ -7587,14 +7653,14 @@ 0.0 NaN NaN - 556.0 - 560.0 + 567.0 + 571.0 0.000000 0.0 0.000000 - 229 + 231 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_is_iterable ToolsTests @@ -7627,7 +7693,7 @@ 0.000000 - 230 + 232 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_is_dictlike ToolsTests @@ -7660,7 +7726,7 @@ 0.000000 - 231 + 233 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_is_listlike ToolsTests @@ -7693,7 +7759,7 @@ 0.000000 - 232 + 234 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_simple ToolsTests @@ -7726,7 +7792,7 @@ 0.000000 - 233 + 235 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_simple_separator ToolsTests @@ -7759,7 +7825,7 @@ 0.000000 - 234 + 236 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_complex ToolsTests @@ -7792,7 +7858,7 @@ 0.000000 - 235 + 237 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_complex_separator ToolsTests @@ -7825,7 +7891,7 @@ 0.000000 - 236 + 238 /home/ubuntu/rolling-pin/python/__init__.py __init__ NaN @@ -7858,7 +7924,7 @@ 0.000000 - 237 + 239 /home/ubuntu/rolling-pin/python/cli.py cli NaN @@ -7891,7 +7957,7 @@ 822.418146 - 238 + 240 /home/ubuntu/rolling-pin/python/rolling_pin/__init__.py __init__ NaN @@ -7924,7 +7990,7 @@ 0.000000 - 239 + 241 /home/ubuntu/rolling-pin/python/rolling_pin/app.py app NaN @@ -7957,7 +8023,7 @@ 27.000000 - 240 + 242 /home/ubuntu/rolling-pin/python/rolling_pin/blob_etl.py blob_etl NaN @@ -7990,7 +8056,7 @@ 558.000000 - 241 + 243 /home/ubuntu/rolling-pin/python/rolling_pin/blob_etl_test.py blob_etl_test NaN @@ -8023,7 +8089,7 @@ 276.981283 - 242 + 244 /home/ubuntu/rolling-pin/python/rolling_pin/conform_config.py conform_config NaN @@ -8031,9 +8097,9 @@ 14.0 0.000667 0.000000 - 64.0 + 66.0 NaN - 16.0 + 18.0 NaN NaN 0.500000 @@ -8041,14 +8107,14 @@ 1.0 1.0 2.0 - 31.0 - 87.349296 + 33.0 + 86.994565 0.0 19.0 1.0 1.0 2.0 - 29.0 + 31.0 NaN NaN 0.055556 @@ -8056,7 +8122,7 @@ 2.000000 - 243 + 245 /home/ubuntu/rolling-pin/python/rolling_pin/conform_config_test.py conform_config_test NaN @@ -8064,7 +8130,7 @@ 17.0 0.000000 0.000000 - 100.0 + 106.0 NaN 6.0 NaN @@ -8081,7 +8147,7 @@ 0.0 0.0 6.0 - 77.0 + 83.0 NaN NaN 0.000000 @@ -8089,7 +8155,7 @@ 0.000000 - 244 + 246 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl.py conform_etl NaN @@ -8097,7 +8163,7 @@ 38.0 0.028000 51.019550 - 281.0 + 283.0 NaN 19.0 NaN @@ -8108,13 +8174,13 @@ 12.0 21.0 121.0 - 66.947688 + 67.034358 0.0 87.0 7.0 14.0 17.0 - 139.0 + 141.0 NaN NaN 10.888889 @@ -8122,15 +8188,15 @@ 84.000000 - 245 + 247 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py conform_etl_test NaN module - 51.0 + 54.0 0.027348 50.105716 - 321.0 + 343.0 NaN 16.0 NaN @@ -8140,14 +8206,14 @@ 2.0 13.0 21.0 - 215.0 - 46.482040 + 228.0 + 45.321442 0.0 0.0 7.0 14.0 16.0 - 254.0 + 273.0 NaN NaN 4.908657 @@ -8155,7 +8221,7 @@ 82.044703 - 246 + 248 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py radon_etl NaN @@ -8188,7 +8254,7 @@ 192.718028 - 247 + 249 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py radon_etl_test NaN @@ -8221,7 +8287,7 @@ 44.972611 - 248 + 250 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py repo_etl NaN @@ -8254,7 +8320,7 @@ 718.631005 - 249 + 251 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py repo_etl_test NaN @@ -8287,50 +8353,50 @@ 201.908907 - 250 + 252 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py tools NaN module 88.0 - 0.135561 - 266.548665 - 480.0 + 0.142607 + 280.352670 + 491.0 NaN - 39.0 + 44.0 NaN NaN - 5.348837 - 2175.277698 + 5.333333 + 2281.709967 10.0 - 43.0 - 71.0 - 201.0 - 53.097205 + 45.0 + 74.0 + 203.0 + 52.532484 0.0 - 153.0 - 25.0 - 46.0 + 156.0 + 26.0 + 48.0 23.0 - 216.0 + 224.0 NaN NaN - 120.848761 - 53.0 - 406.682352 + 126.761665 + 55.0 + 427.820619 - 251 + 253 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py tools_test NaN module - 70.0 + 73.0 0.013288 26.000000 - 560.0 + 571.0 NaN - 23.0 + 24.0 NaN NaN 1.000000 @@ -8338,14 +8404,14 @@ 2.0 8.0 12.0 - 301.0 - 42.187682 + 308.0 + 42.003043 0.0 0.0 4.0 8.0 - 23.0 - 467.0 + 24.0 + 474.0 NaN NaN 2.214619 @@ -8353,7 +8419,7 @@ 39.863137 - 252 + 254 /home/ubuntu/rolling-pin/python/rolling_pin/blob_etl.py field_combinations NaN @@ -8386,7 +8452,7 @@ NaN - 253 + 255 /home/ubuntu/rolling-pin/python/rolling_pin/blob_etl.py field_combinations NaN @@ -8419,7 +8485,7 @@ NaN - 254 + 256 /home/ubuntu/rolling-pin/python/rolling_pin/blob_etl.py recurse NaN @@ -8452,7 +8518,7 @@ NaN - 255 + 257 /home/ubuntu/rolling-pin/python/rolling_pin/blob_etl.py recurse NaN @@ -8485,7 +8551,7 @@ NaN - 256 + 258 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py remove_test_modules NaN @@ -8518,7 +8584,7 @@ NaN - 257 + 259 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py remove_test_modules NaN @@ -8551,7 +8617,7 @@ NaN - 258 + 260 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py write_table NaN @@ -8584,7 +8650,7 @@ NaN - 259 + 261 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py write_table NaN @@ -8617,7 +8683,7 @@ NaN - 260 + 262 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py recurse NaN @@ -8650,7 +8716,7 @@ NaN - 261 + 263 /home/ubuntu/rolling-pin/python/rolling_pin/blob_etl.py BlobETL NaN @@ -8683,7 +8749,7 @@ NaN - 262 + 264 /home/ubuntu/rolling-pin/python/rolling_pin/blob_etl_test.py BlobEtlTests NaN @@ -8716,7 +8782,7 @@ NaN - 263 + 265 /home/ubuntu/rolling-pin/python/rolling_pin/conform_config.py ConformConfig NaN @@ -8743,13 +8809,13 @@ NaN NaN 29.0 - 64.0 + 66.0 NaN NaN NaN - 264 + 266 /home/ubuntu/rolling-pin/python/rolling_pin/conform_config_test.py ConformETLTests NaN @@ -8776,13 +8842,13 @@ NaN NaN 10.0 - 100.0 + 106.0 NaN NaN NaN - 265 + 267 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl.py ConformETL NaN @@ -8809,13 +8875,13 @@ NaN NaN 34.0 - 281.0 + 283.0 NaN NaN NaN - 266 + 268 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py ConformETLTests NaN @@ -8842,13 +8908,13 @@ NaN NaN 19.0 - 321.0 + 343.0 NaN NaN NaN - 267 + 269 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py RadonETL NaN @@ -8881,7 +8947,7 @@ NaN - 268 + 270 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py RadonEtlTests NaN @@ -8914,7 +8980,7 @@ NaN - 269 + 271 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py RepoETL NaN @@ -8947,7 +9013,7 @@ NaN - 270 + 272 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py RepoEtlTests NaN @@ -8980,7 +9046,7 @@ NaN - 271 + 273 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py RepoEtlFuncTests NaN @@ -9013,7 +9079,7 @@ NaN - 272 + 274 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py ToolsTests NaN @@ -9040,7 +9106,7 @@ NaN NaN 16.0 - 560.0 + 571.0 NaN NaN NaN diff --git a/docs/cli.html b/docs/cli.html index 1e20197..f09c188 100644 --- a/docs/cli.html +++ b/docs/cli.html @@ -30,7 +30,7 @@ rolling-pin
- 0.6.4 + 0.6.5
diff --git a/docs/cyclomatic_complexity_metrics.html b/docs/cyclomatic_complexity_metrics.html index 488a73e..67c2958 100644 --- a/docs/cyclomatic_complexity_metrics.html +++ b/docs/cyclomatic_complexity_metrics.html @@ -155,8 +155,8 @@ method 1 0 - 92 - 100 + 98 + 106 4 @@ -168,19 +168,19 @@ 4 0 244 - 281 + 283 4 13 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py - test_conform_line_rule_intersection + test_conform_line_rule_replace ConformETLTests method 1 0 - 301 - 321 + 323 + 343 4 @@ -251,8 +251,8 @@ method 1 0 - 556 - 560 + 567 + 571 4 @@ -1332,7 +1332,7 @@ 1 0 29 - 64 + 66 0 @@ -1344,7 +1344,7 @@ 2 0 10 - 100 + 106 0 @@ -1356,7 +1356,7 @@ 1 0 11 - 31 + 36 4 @@ -1367,8 +1367,8 @@ method 1 0 - 35 41 + 47 4 @@ -1379,8 +1379,8 @@ method 1 0 - 43 - 46 + 49 + 52 4 @@ -1391,8 +1391,8 @@ method 1 0 - 48 - 58 + 54 + 64 4 @@ -1403,8 +1403,8 @@ method 1 0 - 60 - 74 + 66 + 80 4 @@ -1415,8 +1415,8 @@ method 1 0 - 76 - 90 + 82 + 96 4 @@ -1440,7 +1440,7 @@ 3 0 34 - 281 + 283 0 @@ -1536,7 +1536,7 @@ 2 0 19 - 321 + 343 0 @@ -1698,6 +1698,18 @@ 140 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py + test_conform_line_rule_intersection + ConformETLTests + method + 1 + 0 + 301 + 321 + 4 + + + 141 + /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py get_conform_data_path ConformETLTests method @@ -1708,7 +1720,7 @@ 4 - 141 + 142 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py test_conform_all ConformETLTests @@ -1720,7 +1732,7 @@ 4 - 142 + 143 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py test_conform_base ConformETLTests @@ -1732,7 +1744,7 @@ 4 - 143 + 144 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py test_conform_init ConformETLTests @@ -1744,7 +1756,7 @@ 4 - 144 + 145 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py get_data ConformETLTests @@ -1756,7 +1768,7 @@ 4 - 145 + 146 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py get_expected ConformETLTests @@ -1768,7 +1780,7 @@ 4 - 146 + 147 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py get_config ConformETLTests @@ -1780,7 +1792,7 @@ 4 - 147 + 148 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py setup ConformETLTests @@ -1792,7 +1804,7 @@ 4 - 148 + 149 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_cyclomatic_complexity_dataframe RadonETL @@ -1804,7 +1816,7 @@ 4 - 149 + 150 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py cyclomatic_complexity_metrics RadonETL @@ -1816,7 +1828,7 @@ 4 - 150 + 151 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py halstead_metrics RadonETL @@ -1828,7 +1840,7 @@ 4 - 151 + 152 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_radon_report RadonETL @@ -1840,7 +1852,7 @@ 4 - 152 + 153 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_halstead_dataframe RadonETL @@ -1852,7 +1864,7 @@ 4 - 153 + 154 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py write_plots RadonETL @@ -1864,7 +1876,7 @@ 4 - 154 + 155 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_radon_data RadonETL @@ -1876,7 +1888,7 @@ 4 - 155 + 156 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_maintainability_index_dataframe RadonETL @@ -1888,7 +1900,7 @@ 4 - 156 + 157 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_raw_metrics_dataframe RadonETL @@ -1900,7 +1912,7 @@ 4 - 157 + 158 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py RadonETL NaN @@ -1912,7 +1924,7 @@ 0 - 158 + 159 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py __init__ RadonETL @@ -1924,7 +1936,7 @@ 4 - 159 + 160 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py report RadonETL @@ -1936,7 +1948,7 @@ 4 - 160 + 161 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py data RadonETL @@ -1948,7 +1960,7 @@ 4 - 161 + 162 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py raw_metrics RadonETL @@ -1960,7 +1972,7 @@ 4 - 162 + 163 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py maintainability_index RadonETL @@ -1972,7 +1984,7 @@ 4 - 163 + 164 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_report RadonEtlTests @@ -1984,7 +1996,7 @@ 4 - 164 + 165 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_halstead_metrics RadonEtlTests @@ -1996,7 +2008,7 @@ 4 - 165 + 166 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_write_plots RadonEtlTests @@ -2008,7 +2020,7 @@ 4 - 166 + 167 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py RadonEtlTests NaN @@ -2020,7 +2032,7 @@ 0 - 167 + 168 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py get_fake_repo RadonEtlTests @@ -2032,7 +2044,7 @@ 4 - 168 + 169 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py assert_equal RadonEtlTests @@ -2044,7 +2056,7 @@ 4 - 169 + 170 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py get_fake_repo_data RadonEtlTests @@ -2056,7 +2068,7 @@ 4 - 170 + 171 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_init RadonEtlTests @@ -2068,7 +2080,7 @@ 4 - 171 + 172 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_data RadonEtlTests @@ -2080,7 +2092,7 @@ 4 - 172 + 173 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_raw_metrics RadonEtlTests @@ -2092,7 +2104,7 @@ 4 - 173 + 174 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_maintainability_index RadonEtlTests @@ -2104,7 +2116,7 @@ 4 - 174 + 175 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_cyclomatic_complexity_metrics RadonEtlTests @@ -2116,7 +2128,7 @@ 4 - 175 + 176 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py to_dot_graph RepoETL @@ -2128,7 +2140,7 @@ 4 - 176 + 177 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py write_repo_plots_and_tables NaN @@ -2140,7 +2152,7 @@ 0 - 177 + 178 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py __init__ RepoETL @@ -2152,7 +2164,7 @@ 4 - 178 + 179 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _get_imports RepoETL @@ -2164,7 +2176,7 @@ 4 - 179 + 180 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py to_networkx_graph RepoETL @@ -2176,7 +2188,7 @@ 4 - 180 + 181 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py to_dataframe RepoETL @@ -2188,7 +2200,7 @@ 4 - 181 + 182 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _anneal_coordinate RepoETL @@ -2200,7 +2212,7 @@ 4 - 182 + 183 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _get_data RepoETL @@ -2212,7 +2224,7 @@ 4 - 183 + 184 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py RepoETL NaN @@ -2224,7 +2236,7 @@ 0 - 184 + 185 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _calculate_coordinates RepoETL @@ -2236,7 +2248,7 @@ 4 - 185 + 186 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _to_networkx_graph RepoETL @@ -2248,7 +2260,7 @@ 4 - 186 + 187 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _center_coordinate RepoETL @@ -2260,7 +2272,7 @@ 4 - 187 + 188 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py to_html RepoETL @@ -2272,7 +2284,7 @@ 4 - 188 + 189 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py write_repo_architecture NaN @@ -2284,7 +2296,7 @@ 0 - 189 + 190 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_dot_graph RepoEtlTests @@ -2296,7 +2308,7 @@ 4 - 190 + 191 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_get_imports RepoEtlTests @@ -2308,7 +2320,7 @@ 4 - 191 + 192 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_center_coordinate RepoEtlTests @@ -2320,7 +2332,7 @@ 4 - 192 + 193 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_dot_graph_error RepoEtlTests @@ -2332,7 +2344,7 @@ 4 - 193 + 194 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_dataframe RepoEtlTests @@ -2344,7 +2356,7 @@ 4 - 194 + 195 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_html RepoEtlTests @@ -2356,7 +2368,7 @@ 4 - 195 + 196 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_write RepoEtlTests @@ -2368,7 +2380,7 @@ 4 - 196 + 197 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_write_repo_plots_and_tables RepoEtlFuncTests @@ -2380,7 +2392,7 @@ 4 - 197 + 198 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_networkx_graph RepoEtlTests @@ -2392,7 +2404,7 @@ 4 - 198 + 199 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py RepoEtlTests NaN @@ -2404,7 +2416,7 @@ 0 - 199 + 200 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_get_data RepoEtlTests @@ -2416,7 +2428,7 @@ 4 - 200 + 201 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_calculate_coordinates RepoEtlTests @@ -2428,7 +2440,7 @@ 4 - 201 + 202 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_anneal_coordinate RepoEtlTests @@ -2440,7 +2452,7 @@ 4 - 202 + 203 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py RepoEtlFuncTests NaN @@ -2452,7 +2464,7 @@ 0 - 203 + 204 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py get_fake_repo RepoEtlFuncTests @@ -2464,7 +2476,7 @@ 4 - 204 + 205 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py create_repo RepoEtlTests @@ -2476,7 +2488,7 @@ 4 - 205 + 206 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_init RepoEtlTests @@ -2488,7 +2500,7 @@ 4 - 206 + 207 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py list_all_files NaN @@ -2500,43 +2512,43 @@ 0 - 207 + 208 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py read_text NaN function 2 0 - 341 - 357 + 352 + 368 0 - 208 + 209 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py copy_file NaN function 2 0 - 375 - 389 + 386 + 400 0 - 209 + 210 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py move_file NaN function 2 0 - 392 - 407 + 403 + 418 0 - 210 + 211 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py flatten NaN @@ -2548,7 +2560,7 @@ 0 - 211 + 212 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py directory_to_dataframe NaN @@ -2560,19 +2572,19 @@ 0 - 212 + 213 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py write_text NaN function 1 0 - 360 - 372 + 371 + 383 0 - 213 + 214 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py unembed NaN @@ -2584,7 +2596,7 @@ 0 - 214 + 215 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py nest NaN @@ -2596,19 +2608,31 @@ 0 - 215 + 216 + /home/ubuntu/rolling-pin/python/rolling_pin/tools.py + filter_text + NaN + function + 5 + 0 + 314 + 349 + 0 + + + 217 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py write_dot_graph NaN function 5 0 - 447 - 480 + 458 + 491 0 - 216 + 218 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py is_dictlike NaN @@ -2620,7 +2644,7 @@ 0 - 217 + 219 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py is_iterable NaN @@ -2632,7 +2656,7 @@ 0 - 218 + 220 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py is_listlike NaN @@ -2644,31 +2668,19 @@ 0 - 219 - /home/ubuntu/rolling-pin/python/rolling_pin/tools.py - filter_text - NaN - function - 3 - 0 - 314 - 338 - 0 - - - 220 + 221 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py dot_to_html NaN function 3 0 - 411 - 444 + 422 + 455 0 - 221 + 222 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py get_parent_fields NaN @@ -2680,7 +2692,7 @@ 0 - 222 + 223 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py create_files ToolsTests @@ -2692,7 +2704,7 @@ 4 - 223 + 224 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_is_listlike ToolsTests @@ -2704,7 +2716,7 @@ 4 - 224 + 225 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_simple ToolsTests @@ -2716,7 +2728,7 @@ 4 - 225 + 226 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_simple_separator ToolsTests @@ -2728,7 +2740,7 @@ 4 - 226 + 227 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_complex ToolsTests @@ -2740,7 +2752,7 @@ 4 - 227 + 228 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_complex_separator ToolsTests @@ -2752,7 +2764,7 @@ 4 - 228 + 229 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_complex_no_embed ToolsTests @@ -2764,7 +2776,7 @@ 4 - 229 + 230 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_complex_separator_no_embed ToolsTests @@ -2776,7 +2788,7 @@ 4 - 230 + 231 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_double ToolsTests @@ -2788,7 +2800,7 @@ 4 - 231 + 232 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_nest ToolsTests @@ -2800,7 +2812,7 @@ 4 - 232 + 233 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_nest_separator ToolsTests @@ -2812,7 +2824,7 @@ 4 - 233 + 234 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py ToolsTests NaN @@ -2820,11 +2832,11 @@ 2 0 16 - 560 + 571 0 - 234 + 235 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_nest_double ToolsTests @@ -2836,7 +2848,7 @@ 4 - 235 + 236 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_unembed ToolsTests @@ -2848,7 +2860,7 @@ 4 - 236 + 237 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_unembed_nest_flatten_cycle ToolsTests @@ -2860,7 +2872,7 @@ 4 - 237 + 238 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files_errors ToolsTests @@ -2872,7 +2884,7 @@ 4 - 238 + 239 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files_include ToolsTests @@ -2884,7 +2896,7 @@ 4 - 239 + 240 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files_exclude ToolsTests @@ -2896,7 +2908,7 @@ 4 - 240 + 241 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files_include_exclude ToolsTests @@ -2908,7 +2920,7 @@ 4 - 241 + 242 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_get_parent_fields ToolsTests @@ -2920,7 +2932,7 @@ 4 - 242 + 243 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_dot_to_html ToolsTests @@ -2932,7 +2944,7 @@ 4 - 243 + 244 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_filter_text ToolsTests @@ -2944,7 +2956,7 @@ 4 - 244 + 245 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files ToolsTests @@ -2956,67 +2968,79 @@ 4 - 245 + 246 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py - test_read_text + test_filter_text_replace ToolsTests method 1 0 498 - 508 + 507 4 - 246 + 247 + /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py + test_read_text + ToolsTests + method + 1 + 0 + 509 + 519 + 4 + + + 248 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_write_text ToolsTests method 1 0 - 510 - 518 + 521 + 529 4 - 247 + 249 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_copy_file ToolsTests method 1 0 - 520 - 533 + 531 + 544 4 - 248 + 250 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_copy_file_error ToolsTests method 1 0 - 535 - 539 + 546 + 550 4 - 249 + 251 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_move_file ToolsTests method 1 0 - 541 - 554 + 552 + 565 4 - 250 + 252 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_write_dot_graph ToolsTests @@ -3028,7 +3052,7 @@ 4 - 251 + 253 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_directory_to_dataframe ToolsTests @@ -3040,7 +3064,7 @@ 4 - 252 + 254 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py get_simple_blob ToolsTests @@ -3052,7 +3076,7 @@ 4 - 253 + 255 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py get_complex_blob ToolsTests @@ -3064,7 +3088,7 @@ 4 - 254 + 256 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py get_nested_dict ToolsTests @@ -3076,7 +3100,7 @@ 4 - 255 + 257 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_is_iterable ToolsTests @@ -3088,7 +3112,7 @@ 4 - 256 + 258 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_is_dictlike ToolsTests diff --git a/docs/genindex.html b/docs/genindex.html index 01fd09a..19f5c55 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -28,7 +28,7 @@ rolling-pin
- 0.6.4 + 0.6.5
@@ -499,6 +499,8 @@

R

  • regex (rolling_pin.conform_config.ConformConfig.GroupRule attribute)
  • @@ -508,8 +510,12 @@

    R

  • rename_rules (rolling_pin.conform_config.ConformConfig attribute), [1]
  • -
  • replace (rolling_pin.conform_config.ConformConfig.RenameRule attribute) +
  • replace (rolling_pin.conform_config.ConformConfig.LineRule attribute) + +
  • RepoETL (class in rolling_pin.repo_etl)
  • report (rolling_pin.radon_etl.RadonETL property) @@ -517,11 +523,11 @@

    R

  • requirements_command() (in module cli)
  • resolve() (in module cli) -
  • -
  • restart_command() (in module cli)
    • +
    • restart_command() (in module cli) +
    • rolling_pin.app diff --git a/docs/halstead_metrics.html b/docs/halstead_metrics.html index 8718915..9c31d64 100644 --- a/docs/halstead_metrics.html +++ b/docs/halstead_metrics.html @@ -2166,7 +2166,7 @@ 119 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py - get_data + test_conform_line_rule_replace function 0.0 0.0 @@ -2184,7 +2184,7 @@ 120 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py - get_expected + get_data function 0.0 0.0 @@ -2202,6 +2202,24 @@ 121 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py + get_expected + function + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.000000 + 0.000000 + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 122 + /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py get_config function 1.0 @@ -2218,7 +2236,7 @@ 0.001585 - 122 + 123 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py setup function @@ -2236,7 +2254,7 @@ 0.000000 - 123 + 124 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py test_get_data function @@ -2254,7 +2272,7 @@ 0.000000 - 124 + 125 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py test_init function @@ -2272,7 +2290,7 @@ 0.000000 - 125 + 126 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py test_init_empty function @@ -2290,7 +2308,7 @@ 0.000000 - 126 + 127 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py test_from_yaml function @@ -2308,7 +2326,7 @@ 0.000000 - 127 + 128 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py __init__ function @@ -2326,7 +2344,7 @@ 0.000000 - 128 + 129 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_maintainability_index_dataframe function @@ -2344,7 +2362,7 @@ 0.000000 - 129 + 130 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_cyclomatic_complexity_dataframe function @@ -2362,7 +2380,7 @@ 0.005170 - 130 + 131 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_halstead_dataframe function @@ -2380,7 +2398,7 @@ 0.000000 - 131 + 132 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py write_plots function @@ -2398,7 +2416,7 @@ 0.023900 - 132 + 133 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py write_tables function @@ -2416,7 +2434,7 @@ 0.006966 - 133 + 134 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py report function @@ -2434,7 +2452,7 @@ 0.000000 - 134 + 135 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py data function @@ -2452,7 +2470,7 @@ 0.000000 - 135 + 136 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py raw_metrics function @@ -2470,7 +2488,7 @@ 0.000000 - 136 + 137 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py maintainability_index function @@ -2488,7 +2506,7 @@ 0.000000 - 137 + 138 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py cyclomatic_complexity_metrics function @@ -2506,7 +2524,7 @@ 0.000000 - 138 + 139 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py halstead_metrics function @@ -2524,7 +2542,7 @@ 0.000000 - 139 + 140 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_radon_data function @@ -2542,7 +2560,7 @@ 0.004000 - 140 + 141 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_radon_report function @@ -2560,7 +2578,7 @@ 0.000000 - 141 + 142 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py _get_raw_metrics_dataframe function @@ -2578,7 +2596,7 @@ 0.000000 - 142 + 143 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py get_fake_repo function @@ -2596,7 +2614,7 @@ 0.001585 - 143 + 144 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_write_plots function @@ -2614,7 +2632,7 @@ 0.000000 - 144 + 145 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_write_tables function @@ -2632,7 +2650,7 @@ 0.000000 - 145 + 146 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py get_fake_repo_data function @@ -2650,7 +2668,7 @@ 0.000000 - 146 + 147 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py assert_equal function @@ -2668,7 +2686,7 @@ 0.000000 - 147 + 148 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_init function @@ -2686,7 +2704,7 @@ 0.000000 - 148 + 149 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_report function @@ -2704,7 +2722,7 @@ 0.000000 - 149 + 150 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_data function @@ -2722,7 +2740,7 @@ 0.000000 - 150 + 151 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_raw_metrics function @@ -2740,7 +2758,7 @@ 0.001585 - 151 + 152 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_maintainability_index function @@ -2758,7 +2776,7 @@ 0.001585 - 152 + 153 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_cyclomatic_complexity_metrics function @@ -2776,7 +2794,7 @@ 0.002113 - 153 + 154 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py test_halstead_metrics function @@ -2794,7 +2812,7 @@ 0.000000 - 154 + 155 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py __init__ function @@ -2812,7 +2830,7 @@ 0.000000 - 155 + 156 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py to_html function @@ -2830,7 +2848,7 @@ 0.001585 - 156 + 157 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py write function @@ -2848,7 +2866,7 @@ 0.005170 - 157 + 158 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py write_repo_architecture function @@ -2866,7 +2884,7 @@ 0.000667 - 158 + 159 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py write_repo_plots_and_tables function @@ -2884,7 +2902,7 @@ 0.000000 - 159 + 160 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _get_imports function @@ -2902,7 +2920,7 @@ 0.000667 - 160 + 161 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _get_data function @@ -2920,7 +2938,7 @@ 0.039531 - 161 + 162 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _calculate_coordinates function @@ -2938,7 +2956,7 @@ 0.036139 - 162 + 163 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _anneal_coordinate function @@ -2956,7 +2974,7 @@ 0.013288 - 163 + 164 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _center_coordinate function @@ -2974,7 +2992,7 @@ 0.014340 - 164 + 165 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py _to_networkx_graph function @@ -2992,7 +3010,7 @@ 0.000000 - 165 + 166 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py to_networkx_graph function @@ -3010,7 +3028,7 @@ 0.000000 - 166 + 167 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py to_dot_graph function @@ -3028,7 +3046,7 @@ 0.033359 - 167 + 168 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py to_dataframe function @@ -3046,7 +3064,7 @@ 0.000000 - 168 + 169 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py create_repo function @@ -3064,7 +3082,7 @@ 0.000000 - 169 + 170 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_dataframe function @@ -3082,7 +3100,7 @@ 0.000000 - 170 + 171 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_html function @@ -3100,7 +3118,7 @@ 0.000000 - 171 + 172 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_write function @@ -3118,7 +3136,7 @@ 0.001585 - 172 + 173 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py get_repo_data function @@ -3136,7 +3154,7 @@ 0.000000 - 173 + 174 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py get_fake_repo function @@ -3154,7 +3172,7 @@ 0.001585 - 174 + 175 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_write_repo_plots_and_tables function @@ -3172,7 +3190,7 @@ 0.000000 - 175 + 176 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_write_repo_architecture function @@ -3190,7 +3208,7 @@ 0.000000 - 176 + 177 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_init function @@ -3208,7 +3226,7 @@ 0.000000 - 177 + 178 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_get_imports function @@ -3226,7 +3244,7 @@ 0.000000 - 178 + 179 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_get_data function @@ -3244,7 +3262,7 @@ 0.000000 - 179 + 180 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_calculate_coordinates function @@ -3262,7 +3280,7 @@ 0.010340 - 180 + 181 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_anneal_coordinate function @@ -3280,7 +3298,7 @@ 0.001000 - 181 + 182 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_center_coordinate function @@ -3298,7 +3316,7 @@ 0.000000 - 182 + 183 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_networkx_graph function @@ -3316,7 +3334,7 @@ 0.008422 - 183 + 184 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_dot_graph_error function @@ -3334,7 +3352,7 @@ 0.000000 - 184 + 185 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py test_to_dot_graph function @@ -3352,7 +3370,7 @@ 0.012680 - 185 + 186 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py is_iterable function @@ -3370,7 +3388,7 @@ 0.001585 - 186 + 187 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py read_text function @@ -3388,7 +3406,7 @@ 0.000000 - 187 + 188 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py write_text function @@ -3406,7 +3424,7 @@ 0.000000 - 188 + 189 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py copy_file function @@ -3424,7 +3442,7 @@ 0.000000 - 189 + 190 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py move_file function @@ -3442,7 +3460,7 @@ 0.000000 - 190 + 191 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py dot_to_html function @@ -3460,7 +3478,7 @@ 0.001585 - 191 + 192 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py write_dot_graph function @@ -3478,7 +3496,7 @@ 0.001585 - 192 + 193 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py is_dictlike function @@ -3496,7 +3514,7 @@ 0.001585 - 193 + 194 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py is_listlike function @@ -3514,7 +3532,7 @@ 0.000000 - 194 + 195 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py flatten function @@ -3532,7 +3550,7 @@ 0.009510 - 195 + 196 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py nest function @@ -3550,7 +3568,7 @@ 0.008000 - 196 + 197 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py unembed function @@ -3568,7 +3586,7 @@ 0.005170 - 197 + 198 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py list_all_files function @@ -3586,7 +3604,7 @@ 0.029333 - 198 + 199 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py directory_to_dataframe function @@ -3604,7 +3622,7 @@ 0.000000 - 199 + 200 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py get_parent_fields function @@ -3622,25 +3640,25 @@ 0.004644 - 200 + 201 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py filter_text function 2.0 - 5.0 - 3.0 - 5.0 7.0 - 8.0 - 13.609640 - 22.458839 + 4.0 + 7.0 + 9.0 + 11.0 + 21.651484 + 34.869175 1.000000 - 22.458839 - 1.247713 - 0.007486 + 34.869175 + 1.937176 + 0.011623 - 201 + 202 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py get_simple_blob function @@ -3658,7 +3676,7 @@ 0.000000 - 202 + 203 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_complex_no_embed function @@ -3676,7 +3694,7 @@ 0.000000 - 203 + 204 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_complex_separator_no_embed function @@ -3694,7 +3712,7 @@ 0.000000 - 204 + 205 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_double function @@ -3712,7 +3730,7 @@ 0.000000 - 205 + 206 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_nest function @@ -3730,7 +3748,7 @@ 0.000000 - 206 + 207 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_nest_separator function @@ -3748,7 +3766,7 @@ 0.000000 - 207 + 208 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_nest_double function @@ -3766,7 +3784,7 @@ 0.000000 - 208 + 209 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_unembed function @@ -3784,7 +3802,7 @@ 0.000000 - 209 + 210 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_unembed_nest_flatten_cycle function @@ -3802,7 +3820,7 @@ 0.001585 - 210 + 211 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files function @@ -3820,7 +3838,7 @@ 0.000000 - 211 + 212 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py create_files function @@ -3838,7 +3856,7 @@ 0.000000 - 212 + 213 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py get_complex_blob function @@ -3856,7 +3874,7 @@ 0.000000 - 213 + 214 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files_errors function @@ -3874,7 +3892,7 @@ 0.000000 - 214 + 215 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files_include function @@ -3892,7 +3910,7 @@ 0.000000 - 215 + 216 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files_exclude function @@ -3910,7 +3928,7 @@ 0.000000 - 216 + 217 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_list_all_files_include_exclude function @@ -3928,7 +3946,7 @@ 0.000000 - 217 + 218 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_get_parent_fields function @@ -3946,7 +3964,7 @@ 0.000000 - 218 + 219 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_dot_to_html function @@ -3964,7 +3982,7 @@ 0.001585 - 219 + 220 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_write_dot_graph function @@ -3982,7 +4000,7 @@ 0.004644 - 220 + 221 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_directory_to_dataframe function @@ -4000,7 +4018,7 @@ 0.000000 - 221 + 222 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_filter_text function @@ -4018,9 +4036,9 @@ 0.000000 - 222 + 223 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py - test_read_text + test_filter_text_replace function 0.0 0.0 @@ -4036,7 +4054,7 @@ 0.000000 - 223 + 224 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py get_nested_dict function @@ -4054,7 +4072,25 @@ 0.000000 - 224 + 225 + /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py + test_read_text + function + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.000000 + 0.000000 + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + 226 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_write_text function @@ -4072,7 +4108,7 @@ 0.000000 - 225 + 227 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_copy_file function @@ -4090,7 +4126,7 @@ 0.000000 - 226 + 228 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_copy_file_error function @@ -4108,7 +4144,7 @@ 0.000000 - 227 + 229 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_move_file function @@ -4126,7 +4162,7 @@ 0.000000 - 228 + 230 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_move_file_error function @@ -4144,7 +4180,7 @@ 0.000000 - 229 + 231 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_is_iterable function @@ -4162,7 +4198,7 @@ 0.000000 - 230 + 232 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_is_dictlike function @@ -4180,7 +4216,7 @@ 0.000000 - 231 + 233 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_is_listlike function @@ -4198,7 +4234,7 @@ 0.000000 - 232 + 234 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_simple function @@ -4216,7 +4252,7 @@ 0.000000 - 233 + 235 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_simple_separator function @@ -4234,7 +4270,7 @@ 0.000000 - 234 + 236 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_complex function @@ -4252,7 +4288,7 @@ 0.000000 - 235 + 237 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py test_flatten_complex_separator function @@ -4270,7 +4306,7 @@ 0.000000 - 236 + 238 /home/ubuntu/rolling-pin/python/__init__.py __init__ module @@ -4288,7 +4324,7 @@ 0.000000 - 237 + 239 /home/ubuntu/rolling-pin/python/cli.py cli module @@ -4306,7 +4342,7 @@ 0.274139 - 238 + 240 /home/ubuntu/rolling-pin/python/rolling_pin/__init__.py __init__ module @@ -4324,7 +4360,7 @@ 0.000000 - 239 + 241 /home/ubuntu/rolling-pin/python/rolling_pin/app.py app module @@ -4342,7 +4378,7 @@ 0.009000 - 240 + 242 /home/ubuntu/rolling-pin/python/rolling_pin/blob_etl.py blob_etl module @@ -4360,7 +4396,7 @@ 0.186000 - 241 + 243 /home/ubuntu/rolling-pin/python/rolling_pin/blob_etl_test.py blob_etl_test module @@ -4378,7 +4414,7 @@ 0.092327 - 242 + 244 /home/ubuntu/rolling-pin/python/rolling_pin/conform_config.py conform_config module @@ -4396,7 +4432,7 @@ 0.000667 - 243 + 245 /home/ubuntu/rolling-pin/python/rolling_pin/conform_config_test.py conform_config_test module @@ -4414,7 +4450,7 @@ 0.000000 - 244 + 246 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl.py conform_etl module @@ -4432,7 +4468,7 @@ 0.028000 - 245 + 247 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py conform_etl_test module @@ -4450,7 +4486,7 @@ 0.027348 - 246 + 248 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl.py radon_etl module @@ -4468,7 +4504,7 @@ 0.064239 - 247 + 249 /home/ubuntu/rolling-pin/python/rolling_pin/radon_etl_test.py radon_etl_test module @@ -4486,7 +4522,7 @@ 0.014991 - 248 + 250 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl.py repo_etl module @@ -4504,7 +4540,7 @@ 0.239544 - 249 + 251 /home/ubuntu/rolling-pin/python/rolling_pin/repo_etl_test.py repo_etl_test module @@ -4522,25 +4558,25 @@ 0.067303 - 250 + 252 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py tools module 10.0 - 43.0 - 25.0 - 46.0 - 53.0 - 71.0 - 266.548665 - 406.682352 - 5.348837 - 2175.277698 - 120.848761 - 0.135561 + 45.0 + 26.0 + 48.0 + 55.0 + 74.0 + 280.352670 + 427.820619 + 5.333333 + 2281.709967 + 126.761665 + 0.142607 - 251 + 253 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py tools_test module diff --git a/docs/htmlcov/d_5a213bf3bfd38e31_conform_config_py.html b/docs/htmlcov/d_5a213bf3bfd38e31_conform_config_py.html index 6824f69..1bcaad9 100644 --- a/docs/htmlcov/d_5a213bf3bfd38e31_conform_config_py.html +++ b/docs/htmlcov/d_5a213bf3bfd38e31_conform_config_py.html @@ -54,8 +54,8 @@

    - 29 statements   - + 31 statements   +

    @@ -65,7 +65,7 @@

    » next       coverage.py v6.5.0, - created at 2022-10-26 06:08 +0000 + created at 2022-10-27 17:27 +0000

    - 172 statements   - + 174 statements   +

    @@ -65,7 +65,7 @@

    » next       coverage.py v6.5.0, - created at 2022-10-26 20:17 +0000 + created at 2022-10-27 17:27 +0000

    @@ -77,10 +77,10 @@

    Coverage report: python/rolling_pin/conform_config.py - 29 + 31 0 0 - 100% + 100% python/rolling_pin/conform_etl.py @@ -105,19 +105,19 @@

    Coverage report: python/rolling_pin/tools.py - 172 + 174 0 0 - 100% + 100% Total - 943 + 947 23 4 - 98% + 98% @@ -129,7 +129,7 @@

    Coverage report:

    coverage.py v6.5.0, - created at 2022-10-26 20:17 +0000 + created at 2022-10-27 17:27 +0000

    @@ -207,7 +207,7 @@ * Copyright (c) 2014-2015, Jon Schlinkert. * Licensed under the MIT License. */ -"use strict";var n,i="";e.exports=function(t,e){if("string"!=typeof t)throw new TypeError("expected a string");if(1===e)return t;if(2===e)return t+t;var r=t.length*e;if(n!==t||void 0===n)n=t,i="";else if(i.length>=r)return i.substr(0,r);for(;r>i.length&&e>1;)1&e&&(i+=t),e>>=1,t+=t;return i=(i+=t).substr(0,r)}},{}],278:[function(t,e,r){(function(t){(function(){e.exports=t.performance&&t.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}}).call(this)}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],279:[function(t,e,r){"use strict";e.exports=function(t){for(var e=t.length,r=t[t.length-1],n=e,i=e-2;i>=0;--i){var a=r,o=t[i];(l=o-((r=a+o)-a))&&(t[--n]=r,r=l)}var s=0;for(i=n;i0){if(a<=0)return o;n=i+a}else{if(!(i<0))return o;if(a>=0)return o;n=-(i+a)}var s=33306690738754716e-32*n;return o>=s||o<=-s?o:f(t,e,r)},function(t,e,r,n){var i=t[0]-n[0],a=e[0]-n[0],o=r[0]-n[0],s=t[1]-n[1],l=e[1]-n[1],c=r[1]-n[1],u=t[2]-n[2],f=e[2]-n[2],p=r[2]-n[2],d=a*c,m=o*l,g=o*s,v=i*c,y=i*l,x=a*s,b=u*(d-m)+f*(g-v)+p*(y-x),_=7771561172376103e-31*((Math.abs(d)+Math.abs(m))*Math.abs(u)+(Math.abs(g)+Math.abs(v))*Math.abs(f)+(Math.abs(y)+Math.abs(x))*Math.abs(p));return b>_||-b>_?b:h(t,e,r,n)}];function d(t){var e=p[t.length];return e||(e=p[t.length]=u(t.length)),e.apply(void 0,t)}function m(t,e,r,n,i,a,o){return function(e,r,s,l,c){switch(arguments.length){case 0:case 1:return 0;case 2:return n(e,r);case 3:return i(e,r,s);case 4:return a(e,r,s,l);case 5:return o(e,r,s,l,c)}for(var u=new Array(arguments.length),f=0;f0&&o>0||a<0&&o<0)return!1;var s=n(r,t,e),l=n(i,t,e);if(s>0&&l>0||s<0&&l<0)return!1;if(0===a&&0===o&&0===s&&0===l)return function(t,e,r,n){for(var i=0;i<2;++i){var a=t[i],o=e[i],s=Math.min(a,o),l=Math.max(a,o),c=r[i],u=n[i],f=Math.min(c,u);if(Math.max(c,u)=n?(i=f,(l+=1)=n?(i=f,(l+=1)>1,c=e[2*l+1];if(c===a)return l;a>1,c=e[2*l+1];if(c===a)return l;a>1,c=e[2*l+1];if(c===a)return l;a>1,s=a(t[o],e);s<=0?(0===s&&(i=o),r=o+1):s>0&&(n=o-1)}return i}function u(t,e){for(var r=new Array(t.length),i=0,o=r.length;i=t.length||0!==a(t[g],s)););}return r}function f(t,e){if(e<0)return[];for(var r=[],i=(1<>>u&1&&c.push(i[u]);e.push(c)}return s(e)},r.skeleton=f,r.boundary=function(t){for(var e=[],r=0,n=t.length;r>1:(t>>1)-1}function x(t){for(var e=v(t);;){var r=e,n=2*t+1,i=2*(t+1),a=t;if(n0;){var r=y(t);if(r>=0)if(e0){var t=k[0];return g(0,M-1),M-=1,x(0),t}return-1}function w(t,e){var r=k[t];return c[r]===e?t:(c[r]=-1/0,b(t),_(),c[r]=e,b((M+=1)-1))}function T(t){if(!u[t]){u[t]=!0;var e=s[t],r=l[t];s[r]>=0&&(s[r]=e),l[e]>=0&&(l[e]=r),A[e]>=0&&w(A[e],m(e)),A[r]>=0&&w(A[r],m(r))}}var k=[],A=new Array(a);for(f=0;f>1;f>=0;--f)x(f);for(;;){var S=_();if(S<0||c[S]>r)break;T(S)}var E=[];for(f=0;f=0&&r>=0&&e!==r){var n=A[e],i=A[r];n!==i&&C.push([n,i])}})),i.unique(i.normalize(C)),{positions:E,edges:C}};var n=t("robust-orientation"),i=t("simplicial-complex")},{"robust-orientation":284,"simplicial-complex":295}],298:[function(t,e,r){"use strict";e.exports=function(t,e){var r,a,o,s;if(e[0][0]e[1][0]))return i(e,t);r=e[1],a=e[0]}if(t[0][0]t[1][0]))return-i(t,e);o=t[1],s=t[0]}var l=n(r,a,s),c=n(r,a,o);if(l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;if(l=n(s,o,a),c=n(s,o,r),l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;return a[0]-s[0]};var n=t("robust-orientation");function i(t,e){var r,i,a,o;if(e[0][0]e[1][0])){var s=Math.min(t[0][1],t[1][1]),l=Math.max(t[0][1],t[1][1]),c=Math.min(e[0][1],e[1][1]),u=Math.max(e[0][1],e[1][1]);return lu?s-u:l-u}r=e[1],i=e[0]}t[0][1]0)if(e[0]!==o[1][0])r=t,t=t.right;else{if(l=c(t.right,e))return l;t=t.left}else{if(e[0]!==o[1][0])return t;var l;if(l=c(t.right,e))return l;t=t.left}}return r}function u(t,e,r,n){this.y=t,this.index=e,this.start=r,this.closed=n}function f(t,e,r,n){this.x=t,this.segment=e,this.create=r,this.index=n}s.prototype.castUp=function(t){var e=n.le(this.coordinates,t[0]);if(e<0)return-1;this.slabs[e];var r=c(this.slabs[e],t),i=-1;if(r&&(i=r.value),this.coordinates[e]===t[0]){var s=null;if(r&&(s=r.key),e>0){var u=c(this.slabs[e-1],t);u&&(s?o(u.key,s)>0&&(s=u.key,i=u.value):(i=u.value,s=u.key))}var f=this.horizontal[e];if(f.length>0){var h=n.ge(f,t[1],l);if(h=f.length)return i;p=f[h]}}if(p.start)if(s){var d=a(s[0],s[1],[t[0],p.y]);s[0][0]>s[1][0]&&(d=-d),d>0&&(i=p.index)}else i=p.index;else p.y!==t[1]&&(i=p.index)}}}return i}},{"./lib/order-segments":298,"binary-search-bounds":31,"functional-red-black-tree":69,"robust-orientation":284}],300:[function(t,e,r){"use strict";var n=t("robust-dot-product"),i=t("robust-sum");function a(t,e){var r=i(n(t,e),[e[e.length-1]]);return r[r.length-1]}function o(t,e,r,n){var i=-e/(n-e);i<0?i=0:i>1&&(i=1);for(var a=1-i,o=t.length,s=new Array(o),l=0;l0||i>0&&u<0){var f=o(s,u,l,i);r.push(f),n.push(f.slice())}u<0?n.push(l.slice()):u>0?r.push(l.slice()):(r.push(l.slice()),n.push(l.slice())),i=u}return{positive:r,negative:n}},e.exports.positive=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c>=0&&r.push(s.slice()),n=c}return r},e.exports.negative=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c<=0&&r.push(s.slice()),n=c}return r}},{"robust-dot-product":281,"robust-sum":289}],301:[function(t,e,r){!function(){"use strict";var t={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function e(t){return i(o(t),arguments)}function n(t,r){return e.apply(null,[t].concat(r||[]))}function i(r,n){var i,a,o,s,l,c,u,f,h,p=1,d=r.length,m="";for(a=0;a=0),s.type){case"b":i=parseInt(i,10).toString(2);break;case"c":i=String.fromCharCode(parseInt(i,10));break;case"d":case"i":i=parseInt(i,10);break;case"j":i=JSON.stringify(i,null,s.width?parseInt(s.width):0);break;case"e":i=s.precision?parseFloat(i).toExponential(s.precision):parseFloat(i).toExponential();break;case"f":i=s.precision?parseFloat(i).toFixed(s.precision):parseFloat(i);break;case"g":i=s.precision?String(Number(i.toPrecision(s.precision))):parseFloat(i);break;case"o":i=(parseInt(i,10)>>>0).toString(8);break;case"s":i=String(i),i=s.precision?i.substring(0,s.precision):i;break;case"t":i=String(!!i),i=s.precision?i.substring(0,s.precision):i;break;case"T":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=s.precision?i.substring(0,s.precision):i;break;case"u":i=parseInt(i,10)>>>0;break;case"v":i=i.valueOf(),i=s.precision?i.substring(0,s.precision):i;break;case"x":i=(parseInt(i,10)>>>0).toString(16);break;case"X":i=(parseInt(i,10)>>>0).toString(16).toUpperCase()}t.json.test(s.type)?m+=i:(!t.number.test(s.type)||f&&!s.sign?h="":(h=f?"+":"-",i=i.toString().replace(t.sign,"")),c=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",u=s.width-(h+i).length,l=s.width&&u>0?c.repeat(u):"",m+=s.align?h+i+l:"0"===c?h+l+i:l+h+i)}return m}var a=Object.create(null);function o(e){if(a[e])return a[e];for(var r,n=e,i=[],o=0;n;){if(null!==(r=t.text.exec(n)))i.push(r[0]);else if(null!==(r=t.modulo.exec(n)))i.push("%");else{if(null===(r=t.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(r[2]){o|=1;var s=[],l=r[2],c=[];if(null===(c=t.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(c[1]);""!==(l=l.substring(c[0].length));)if(null!==(c=t.key_access.exec(l)))s.push(c[1]);else{if(null===(c=t.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(c[1])}r[2]=s}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");i.push({placeholder:r[0],param_no:r[1],keys:r[2],sign:r[3],pad_char:r[4],align:r[5],width:r[6],precision:r[7],type:r[8]})}n=n.substring(r[0].length)}return a[e]=i}void 0!==r&&(r.sprintf=e,r.vsprintf=n),"undefined"!=typeof window&&(window.sprintf=e,window.vsprintf=n)}()},{}],302:[function(t,e,r){"use strict";e.exports=function(t,e){if(t.dimension<=0)return{positions:[],cells:[]};if(1===t.dimension)return function(t,e){for(var r=i(t,e),n=r.length,a=new Array(n),o=new Array(n),s=0;sn|0},vertex:function(t,e,r,n,i,a,o,s,l,c,u,f,h){var p=(o<<0)+(s<<1)+(l<<2)+(c<<3)|0;if(0!==p&&15!==p)switch(p){case 0:u.push([t-.5,e-.5]);break;case 1:u.push([t-.25-.25*(n+r-2*h)/(r-n),e-.25-.25*(i+r-2*h)/(r-i)]);break;case 2:u.push([t-.75-.25*(-n-r+2*h)/(n-r),e-.25-.25*(a+n-2*h)/(n-a)]);break;case 3:u.push([t-.5,e-.5-.5*(i+r+a+n-4*h)/(r-i+n-a)]);break;case 4:u.push([t-.25-.25*(a+i-2*h)/(i-a),e-.75-.25*(-i-r+2*h)/(i-r)]);break;case 5:u.push([t-.5-.5*(n+r+a+i-4*h)/(r-n+i-a),e-.5]);break;case 6:u.push([t-.5-.25*(-n-r+a+i)/(n-r+i-a),e-.5-.25*(-i-r+a+n)/(i-r+n-a)]);break;case 7:u.push([t-.75-.25*(a+i-2*h)/(i-a),e-.75-.25*(a+n-2*h)/(n-a)]);break;case 8:u.push([t-.75-.25*(-a-i+2*h)/(a-i),e-.75-.25*(-a-n+2*h)/(a-n)]);break;case 9:u.push([t-.5-.25*(n+r+-a-i)/(r-n+a-i),e-.5-.25*(i+r+-a-n)/(r-i+a-n)]);break;case 10:u.push([t-.5-.5*(-n-r-a-i+4*h)/(n-r+a-i),e-.5]);break;case 11:u.push([t-.25-.25*(-a-i+2*h)/(a-i),e-.75-.25*(i+r-2*h)/(r-i)]);break;case 12:u.push([t-.5,e-.5-.5*(-i-r-a-n+4*h)/(i-r+a-n)]);break;case 13:u.push([t-.75-.25*(n+r-2*h)/(r-n),e-.25-.25*(-a-n+2*h)/(a-n)]);break;case 14:u.push([t-.25-.25*(-n-r+2*h)/(n-r),e-.25-.25*(-i-r+2*h)/(i-r)]);break;case 15:u.push([t-.5,e-.5])}},cell:function(t,e,r,n,i,a,o,s,l){i?s.push([t,e]):s.push([e,t])}});return function(t,e){var r=[],i=[];return n(t,r,i,e),{positions:r,cells:i}}}};var o={}},{"ndarray-extract-contour":251,"zero-crossings":318}],303:[function(t,e,r){(function(r){(function(){"use strict";e.exports=function t(e,r,i){i=i||{};var o=a[e];o||(o=a[e]={" ":{data:new Float32Array(0),shape:.2}});var s=o[r];if(!s)if(r.length<=1||!/\d/.test(r))s=o[r]=function(t){for(var e=t.cells,r=t.positions,n=new Float32Array(6*e.length),i=0,a=0,o=0;o0&&(f+=.02);var p=new Float32Array(u),d=0,m=-.5*f;for(h=0;hMath.max(r,n)?i[2]=1:r>Math.max(e,n)?i[0]=1:i[1]=1;for(var a=0,o=0,l=0;l<3;++l)a+=t[l]*t[l],o+=i[l]*t[l];for(l=0;l<3;++l)i[l]-=o/a*t[l];return s(i,i),i}function h(t,e,r,i,a,o,s,l){this.center=n(r),this.up=n(i),this.right=n(a),this.radius=n([o]),this.angle=n([s,l]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(t,e),this.computedCenter=this.center.curve(0),this.computedUp=this.up.curve(0),this.computedRight=this.right.curve(0),this.computedRadius=this.radius.curve(0),this.computedAngle=this.angle.curve(0),this.computedToward=[0,0,0],this.computedEye=[0,0,0],this.computedMatrix=new Array(16);for(var c=0;c<16;++c)this.computedMatrix[c]=.5;this.recalcMatrix(0)}var p=h.prototype;p.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},p.getDistanceLimits=function(t){var e=this.radius.bounds[0];return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},p.recalcMatrix=function(t){this.center.curve(t),this.up.curve(t),this.right.curve(t),this.radius.curve(t),this.angle.curve(t);for(var e=this.computedUp,r=this.computedRight,n=0,i=0,a=0;a<3;++a)i+=e[a]*r[a],n+=e[a]*e[a];var l=Math.sqrt(n),u=0;for(a=0;a<3;++a)r[a]-=e[a]*i/n,u+=r[a]*r[a],e[a]/=l;var f=Math.sqrt(u);for(a=0;a<3;++a)r[a]/=f;var h=this.computedToward;o(h,e,r),s(h,h);var p=Math.exp(this.computedRadius[0]),d=this.computedAngle[0],m=this.computedAngle[1],g=Math.cos(d),v=Math.sin(d),y=Math.cos(m),x=Math.sin(m),b=this.computedCenter,_=g*y,w=v*y,T=x,k=-g*x,A=-v*x,M=y,S=this.computedEye,E=this.computedMatrix;for(a=0;a<3;++a){var L=_*r[a]+w*h[a]+T*e[a];E[4*a+1]=k*r[a]+A*h[a]+M*e[a],E[4*a+2]=L,E[4*a+3]=0}var C=E[1],P=E[5],I=E[9],O=E[2],z=E[6],D=E[10],R=P*D-I*z,F=I*O-C*D,B=C*z-P*O,N=c(R,F,B);R/=N,F/=N,B/=N,E[0]=R,E[4]=F,E[8]=B;for(a=0;a<3;++a)S[a]=b[a]+E[2+4*a]*p;for(a=0;a<3;++a){u=0;for(var j=0;j<3;++j)u+=E[a+4*j]*S[j];E[12+a]=-u}E[15]=1},p.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r};var d=[0,0,0];p.rotate=function(t,e,r,n){if(this.angle.move(t,e,r),n){this.recalcMatrix(t);var i=this.computedMatrix;d[0]=i[2],d[1]=i[6],d[2]=i[10];for(var o=this.computedUp,s=this.computedRight,l=this.computedToward,c=0;c<3;++c)i[4*c]=o[c],i[4*c+1]=s[c],i[4*c+2]=l[c];a(i,i,n,d);for(c=0;c<3;++c)o[c]=i[4*c],s[c]=i[4*c+1];this.up.set(t,o[0],o[1],o[2]),this.right.set(t,s[0],s[1],s[2])}},p.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=(Math.exp(this.computedRadius[0]),i[1]),o=i[5],s=i[9],l=c(a,o,s);a/=l,o/=l,s/=l;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=c(u-=a*p,f-=o*p,h-=s*p),m=(u/=d)*e+a*r,g=(f/=d)*e+o*r,v=(h/=d)*e+s*r;this.center.move(t,m,g,v);var y=Math.exp(this.computedRadius[0]);y=Math.max(1e-4,y+n),this.radius.set(t,Math.log(y))},p.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},p.setMatrix=function(t,e,r,n){var a=1;"number"==typeof r&&(a=0|r),(a<0||a>3)&&(a=1);var o=(a+2)%3;e||(this.recalcMatrix(t),e=this.computedMatrix);var s=e[a],l=e[a+4],f=e[a+8];if(n){var h=Math.abs(s),p=Math.abs(l),d=Math.abs(f),m=Math.max(h,p,d);h===m?(s=s<0?-1:1,l=f=0):d===m?(f=f<0?-1:1,s=l=0):(l=l<0?-1:1,s=f=0)}else{var g=c(s,l,f);s/=g,l/=g,f/=g}var v,y,x=e[o],b=e[o+4],_=e[o+8],w=x*s+b*l+_*f,T=c(x-=s*w,b-=l*w,_-=f*w),k=l*(_/=T)-f*(b/=T),A=f*(x/=T)-s*_,M=s*b-l*x,S=c(k,A,M);if(k/=S,A/=S,M/=S,this.center.jump(t,q,G,Y),this.radius.idle(t),this.up.jump(t,s,l,f),this.right.jump(t,x,b,_),2===a){var E=e[1],L=e[5],C=e[9],P=E*x+L*b+C*_,I=E*k+L*A+C*M;v=R<0?-Math.PI/2:Math.PI/2,y=Math.atan2(I,P)}else{var O=e[2],z=e[6],D=e[10],R=O*s+z*l+D*f,F=O*x+z*b+D*_,B=O*k+z*A+D*M;v=Math.asin(u(R)),y=Math.atan2(B,F)}this.angle.jump(t,y,v),this.recalcMatrix(t);var N=e[2],j=e[6],U=e[10],V=this.computedMatrix;i(V,e);var H=V[15],q=V[12]/H,G=V[13]/H,Y=V[14]/H,W=Math.exp(this.computedRadius[0]);this.center.jump(t,q-N*W,G-j*W,Y-U*W)},p.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},p.idle=function(t){this.center.idle(t),this.up.idle(t),this.right.idle(t),this.radius.idle(t),this.angle.idle(t)},p.flush=function(t){this.center.flush(t),this.up.flush(t),this.right.flush(t),this.radius.flush(t),this.angle.flush(t)},p.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},p.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||this.computedCenter;var i=(n=n||this.computedUp)[0],a=n[1],o=n[2],s=c(i,a,o);if(!(s<1e-6)){i/=s,a/=s,o/=s;var l=e[0]-r[0],f=e[1]-r[1],h=e[2]-r[2],p=c(l,f,h);if(!(p<1e-6)){l/=p,f/=p,h/=p;var d=this.computedRight,m=d[0],g=d[1],v=d[2],y=i*m+a*g+o*v,x=c(m-=y*i,g-=y*a,v-=y*o);if(!(x<.01&&(x=c(m=a*h-o*f,g=o*l-i*h,v=i*f-a*l))<1e-6)){m/=x,g/=x,v/=x,this.up.set(t,i,a,o),this.right.set(t,m,g,v),this.center.set(t,r[0],r[1],r[2]),this.radius.set(t,Math.log(p));var b=a*v-o*g,_=o*m-i*v,w=i*g-a*m,T=c(b,_,w),k=i*l+a*f+o*h,A=m*l+g*f+v*h,M=(b/=T)*l+(_/=T)*f+(w/=T)*h,S=Math.asin(u(k)),E=Math.atan2(M,A),L=this.angle._state,C=L[L.length-1],P=L[L.length-2];C%=2*Math.PI;var I=Math.abs(C+2*Math.PI-E),O=Math.abs(C-E),z=Math.abs(C-2*Math.PI-E);I0?r.pop():new ArrayBuffer(t)}function d(t){return new Uint8Array(p(t),0,t)}function m(t){return new Uint16Array(p(2*t),0,t)}function g(t){return new Uint32Array(p(4*t),0,t)}function v(t){return new Int8Array(p(t),0,t)}function y(t){return new Int16Array(p(2*t),0,t)}function x(t){return new Int32Array(p(4*t),0,t)}function b(t){return new Float32Array(p(4*t),0,t)}function _(t){return new Float64Array(p(8*t),0,t)}function w(t){return o?new Uint8ClampedArray(p(t),0,t):d(t)}function T(t){return s?new BigUint64Array(p(8*t),0,t):null}function k(t){return l?new BigInt64Array(p(8*t),0,t):null}function A(t){return new DataView(p(t),0,t)}function M(t){t=n.nextPow2(t);var e=n.log2(t),r=f[e];return r.length>0?r.pop():new a(t)}r.free=function(t){if(a.isBuffer(t))f[n.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|n.log2(e);u[r].push(t)}},r.freeUint8=r.freeUint16=r.freeUint32=r.freeBigUint64=r.freeInt8=r.freeInt16=r.freeInt32=r.freeBigInt64=r.freeFloat32=r.freeFloat=r.freeFloat64=r.freeDouble=r.freeUint8Clamped=r.freeDataView=function(t){h(t.buffer)},r.freeArrayBuffer=h,r.freeBuffer=function(t){f[n.log2(t.length)].push(t)},r.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return p(t);switch(e){case"uint8":return d(t);case"uint16":return m(t);case"uint32":return g(t);case"int8":return v(t);case"int16":return y(t);case"int32":return x(t);case"float":case"float32":return b(t);case"double":case"float64":return _(t);case"uint8_clamped":return w(t);case"bigint64":return k(t);case"biguint64":return T(t);case"buffer":return M(t);case"data":case"dataview":return A(t);default:return null}return null},r.mallocArrayBuffer=p,r.mallocUint8=d,r.mallocUint16=m,r.mallocUint32=g,r.mallocInt8=v,r.mallocInt16=y,r.mallocInt32=x,r.mallocFloat32=r.mallocFloat=b,r.mallocFloat64=r.mallocDouble=_,r.mallocUint8Clamped=w,r.mallocBigUint64=T,r.mallocBigInt64=k,r.mallocDataView=A,r.mallocBuffer=M,r.clearCache=function(){for(var t=0;t<32;++t)c.UINT8[t].length=0,c.UINT16[t].length=0,c.UINT32[t].length=0,c.INT8[t].length=0,c.INT16[t].length=0,c.INT32[t].length=0,c.FLOAT[t].length=0,c.DOUBLE[t].length=0,c.BIGUINT64[t].length=0,c.BIGINT64[t].length=0,c.UINT8C[t].length=0,u[t].length=0,f[t].length=0}}).call(this)}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"bit-twiddle":32,buffer:3,dup:65}],309:[function(t,e,r){"use strict";function n(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e0&&(a=n.size),n.lineSpacing&&n.lineSpacing>0&&(o=n.lineSpacing),n.styletags&&n.styletags.breaklines&&(s.breaklines=!!n.styletags.breaklines),n.styletags&&n.styletags.bolds&&(s.bolds=!!n.styletags.bolds),n.styletags&&n.styletags.italics&&(s.italics=!!n.styletags.italics),n.styletags&&n.styletags.subscripts&&(s.subscripts=!!n.styletags.subscripts),n.styletags&&n.styletags.superscripts&&(s.superscripts=!!n.styletags.superscripts));return r.font=[n.fontStyle,n.fontVariant,n.fontWeight,a+"px",n.font].filter((function(t){return t})).join(" "),r.textAlign="start",r.textBaseline="alphabetic",r.direction="ltr",h(function(t,e,r,n,a,o){r=r.replace(/\n/g,""),r=!0===o.breaklines?r.replace(/\/g,"\n"):r.replace(/\/g," ");var s="",l=[];for(p=0;p-1?parseInt(t[1+i]):0,l=a>-1?parseInt(r[1+a]):0;s!==l&&(n=n.replace(S(),"?px "),g*=Math.pow(.75,l-s),n=n.replace("?px ",S())),m+=.25*x*(l-s)}if(!0===o.superscripts){var c=t.indexOf("+"),u=r.indexOf("+"),f=c>-1?parseInt(t[1+c]):0,h=u>-1?parseInt(r[1+u]):0;f!==h&&(n=n.replace(S(),"?px "),g*=Math.pow(.75,h-f),n=n.replace("?px ",S())),m-=.25*x*(h-f)}if(!0===o.bolds){var p=t.indexOf("b|")>-1,d=r.indexOf("b|")>-1;!p&&d&&(n=v?n.replace("italic ","italic bold "):"bold "+n),p&&!d&&(n=n.replace("bold ",""))}if(!0===o.italics){var v=t.indexOf("i|")>-1,y=r.indexOf("i|")>-1;!v&&y&&(n="italic "+n),v&&!y&&(n=n.replace("italic ",""))}e.font=n}for(h=0;h",a="",o=i.length,s=a.length,l="+"===e[0]||"-"===e[0],c=0,u=-s;c>-1&&-1!==(c=r.indexOf(i,c))&&-1!==(u=r.indexOf(a,c+o))&&!(u<=c);){for(var f=c;f=u)n[f]=null,r=r.substr(0,f)+" "+r.substr(f+1);else if(null!==n[f]){var h=n[f].indexOf(e[0]);-1===h?n[f]+=e:l&&(n[f]=n[f].substr(0,h+1)+(1+parseInt(n[f][h+1]))+n[f].substr(h+2))}var p=c+o,d=r.substr(p,u-p).indexOf(i);c=-1!==d?d:u+s}return n}function u(t,e){var r=n(t,128);return e?a(r.cells,r.positions,.25):{edges:r.cells,positions:r.positions}}function f(t,e,r,n){var i=u(t,n),a=function(t,e,r){for(var n=e.textAlign||"start",i=e.textBaseline||"alphabetic",a=[1<<30,1<<30],o=[0,0],s=t.length,l=0;l=0?e[a]:i}))},has___:{value:y((function(e){var n=v(e);return n?r in n:t.indexOf(e)>=0}))},set___:{value:y((function(n,i){var a,o=v(n);return o?o[r]=i:(a=t.indexOf(n))>=0?e[a]=i:(a=t.length,e[a]=i,t[a]=n),this}))},delete___:{value:y((function(n){var i,a,o=v(n);return o?r in o&&delete o[r]:!((i=t.indexOf(n))<0)&&(a=t.length-1,t[i]=void 0,e[i]=e[a],t[i]=t[a],t.length=a,e.length=a,!0)}))}})};d.prototype=Object.create(Object.prototype,{get:{value:function(t,e){return this.get___(t,e)},writable:!0,configurable:!0},has:{value:function(t){return this.has___(t)},writable:!0,configurable:!0},set:{value:function(t,e){return this.set___(t,e)},writable:!0,configurable:!0},delete:{value:function(t){return this.delete___(t)},writable:!0,configurable:!0}}),"function"==typeof r?function(){function n(){this instanceof d||x();var e,n=new r,i=void 0,a=!1;return e=t?function(t,e){return n.set(t,e),n.has(t)||(i||(i=new d),i.set(t,e)),this}:function(t,e){if(a)try{n.set(t,e)}catch(r){i||(i=new d),i.set___(t,e)}else n.set(t,e);return this},Object.create(d.prototype,{get___:{value:y((function(t,e){return i?n.has(t)?n.get(t):i.get___(t,e):n.get(t,e)}))},has___:{value:y((function(t){return n.has(t)||!!i&&i.has___(t)}))},set___:{value:y(e)},delete___:{value:y((function(t){var e=!!n.delete(t);return i&&i.delete___(t)||e}))},permitHostObjects___:{value:y((function(t){if(t!==m)throw new Error("bogus call to permitHostObjects___");a=!0}))}})}t&&"undefined"!=typeof Proxy&&(Proxy=void 0),n.prototype=d.prototype,e.exports=n,Object.defineProperty(WeakMap.prototype,"constructor",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():("undefined"!=typeof Proxy&&(Proxy=void 0),e.exports=d)}function m(t){t.permitHostObjects___&&t.permitHostObjects___(m)}function g(t){return!("weakmap:"==t.substr(0,"weakmap:".length)&&"___"===t.substr(t.length-3))}function v(t){if(t!==Object(t))throw new TypeError("Not an object: "+t);var e=t[l];if(e&&e.key===t)return e;if(s(t)){e={key:t};try{return o(t,l,{value:e,writable:!1,enumerable:!1,configurable:!1}),e}catch(t){return}}}function y(t){return t.prototype=null,Object.freeze(t)}function x(){h||"undefined"==typeof console||(h=!0,console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."))}}()},{}],314:[function(t,e,r){var n=t("./hidden-store.js");e.exports=function(){var t={};return function(e){if(("object"!=typeof e||null===e)&&"function"!=typeof e)throw new Error("Weakmap-shim: Key must be object");var r=e.valueOf(t);return r&&r.identity===t?r:n(e,t)}}},{"./hidden-store.js":315}],315:[function(t,e,r){e.exports=function(t,e){var r={identity:e},n=t.valueOf;return Object.defineProperty(t,"valueOf",{value:function(t){return t!==e?n.apply(this,arguments):r},writable:!0}),r}},{}],316:[function(t,e,r){var n=t("./create-store.js");e.exports=function(){var t=n();return{get:function(e,r){var n=t(e);return n.hasOwnProperty("value")?n.value:r},set:function(e,r){return t(e).value=r,this},has:function(e){return"value"in t(e)},delete:function(e){return delete t(e).value}}}},{"./create-store.js":314}],317:[function(t,e,r){"use strict";var n,i=function(){return function(t,e,r,n,i,a){var o=t[0],s=r[0],l=[0],c=s;n|=0;var u=0,f=s;for(u=0;u=0!=p>=0&&i.push(l[0]+.5+.5*(h+p)/(h-p)),n+=f,++l[0]}}};e.exports=(n={funcName:{funcName:"zeroCrossings"}.funcName},function(t){var e={};return function(r,n,i){var a=r.dtype,o=r.order,s=[a,o.join()].join(),l=e[s];return l||(e[s]=l=t([a,o])),l(r.shape.slice(0),r.data,r.stride,0|r.offset,n,i)}}(i.bind(void 0,n)))},{}],318:[function(t,e,r){"use strict";e.exports=function(t,e){var r=[];return e=+e||0,n(t.hi(t.shape[0]-1),r,e),r};var n=t("./lib/zc-core")},{"./lib/zc-core":317}]},{},[6])(6)}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[27])(27)}));
    +"use strict";var n,i="";e.exports=function(t,e){if("string"!=typeof t)throw new TypeError("expected a string");if(1===e)return t;if(2===e)return t+t;var r=t.length*e;if(n!==t||void 0===n)n=t,i="";else if(i.length>=r)return i.substr(0,r);for(;r>i.length&&e>1;)1&e&&(i+=t),e>>=1,t+=t;return i=(i+=t).substr(0,r)}},{}],278:[function(t,e,r){(function(t){(function(){e.exports=t.performance&&t.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}}).call(this)}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],279:[function(t,e,r){"use strict";e.exports=function(t){for(var e=t.length,r=t[t.length-1],n=e,i=e-2;i>=0;--i){var a=r,o=t[i];(l=o-((r=a+o)-a))&&(t[--n]=r,r=l)}var s=0;for(i=n;i0){if(a<=0)return o;n=i+a}else{if(!(i<0))return o;if(a>=0)return o;n=-(i+a)}var s=33306690738754716e-32*n;return o>=s||o<=-s?o:f(t,e,r)},function(t,e,r,n){var i=t[0]-n[0],a=e[0]-n[0],o=r[0]-n[0],s=t[1]-n[1],l=e[1]-n[1],c=r[1]-n[1],u=t[2]-n[2],f=e[2]-n[2],p=r[2]-n[2],d=a*c,m=o*l,g=o*s,v=i*c,y=i*l,x=a*s,b=u*(d-m)+f*(g-v)+p*(y-x),_=7771561172376103e-31*((Math.abs(d)+Math.abs(m))*Math.abs(u)+(Math.abs(g)+Math.abs(v))*Math.abs(f)+(Math.abs(y)+Math.abs(x))*Math.abs(p));return b>_||-b>_?b:h(t,e,r,n)}];function d(t){var e=p[t.length];return e||(e=p[t.length]=u(t.length)),e.apply(void 0,t)}function m(t,e,r,n,i,a,o){return function(e,r,s,l,c){switch(arguments.length){case 0:case 1:return 0;case 2:return n(e,r);case 3:return i(e,r,s);case 4:return a(e,r,s,l);case 5:return o(e,r,s,l,c)}for(var u=new Array(arguments.length),f=0;f0&&o>0||a<0&&o<0)return!1;var s=n(r,t,e),l=n(i,t,e);if(s>0&&l>0||s<0&&l<0)return!1;if(0===a&&0===o&&0===s&&0===l)return function(t,e,r,n){for(var i=0;i<2;++i){var a=t[i],o=e[i],s=Math.min(a,o),l=Math.max(a,o),c=r[i],u=n[i],f=Math.min(c,u);if(Math.max(c,u)=n?(i=f,(l+=1)=n?(i=f,(l+=1)>1,c=e[2*l+1];if(c===a)return l;a>1,c=e[2*l+1];if(c===a)return l;a>1,c=e[2*l+1];if(c===a)return l;a>1,s=a(t[o],e);s<=0?(0===s&&(i=o),r=o+1):s>0&&(n=o-1)}return i}function u(t,e){for(var r=new Array(t.length),i=0,o=r.length;i=t.length||0!==a(t[g],s)););}return r}function f(t,e){if(e<0)return[];for(var r=[],i=(1<>>u&1&&c.push(i[u]);e.push(c)}return s(e)},r.skeleton=f,r.boundary=function(t){for(var e=[],r=0,n=t.length;r>1:(t>>1)-1}function x(t){for(var e=v(t);;){var r=e,n=2*t+1,i=2*(t+1),a=t;if(n0;){var r=y(t);if(r>=0)if(e0){var t=k[0];return g(0,M-1),M-=1,x(0),t}return-1}function w(t,e){var r=k[t];return c[r]===e?t:(c[r]=-1/0,b(t),_(),c[r]=e,b((M+=1)-1))}function T(t){if(!u[t]){u[t]=!0;var e=s[t],r=l[t];s[r]>=0&&(s[r]=e),l[e]>=0&&(l[e]=r),A[e]>=0&&w(A[e],m(e)),A[r]>=0&&w(A[r],m(r))}}var k=[],A=new Array(a);for(f=0;f>1;f>=0;--f)x(f);for(;;){var S=_();if(S<0||c[S]>r)break;T(S)}var E=[];for(f=0;f=0&&r>=0&&e!==r){var n=A[e],i=A[r];n!==i&&C.push([n,i])}})),i.unique(i.normalize(C)),{positions:E,edges:C}};var n=t("robust-orientation"),i=t("simplicial-complex")},{"robust-orientation":284,"simplicial-complex":295}],298:[function(t,e,r){"use strict";e.exports=function(t,e){var r,a,o,s;if(e[0][0]e[1][0]))return i(e,t);r=e[1],a=e[0]}if(t[0][0]t[1][0]))return-i(t,e);o=t[1],s=t[0]}var l=n(r,a,s),c=n(r,a,o);if(l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;if(l=n(s,o,a),c=n(s,o,r),l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;return a[0]-s[0]};var n=t("robust-orientation");function i(t,e){var r,i,a,o;if(e[0][0]e[1][0])){var s=Math.min(t[0][1],t[1][1]),l=Math.max(t[0][1],t[1][1]),c=Math.min(e[0][1],e[1][1]),u=Math.max(e[0][1],e[1][1]);return lu?s-u:l-u}r=e[1],i=e[0]}t[0][1]0)if(e[0]!==o[1][0])r=t,t=t.right;else{if(l=c(t.right,e))return l;t=t.left}else{if(e[0]!==o[1][0])return t;var l;if(l=c(t.right,e))return l;t=t.left}}return r}function u(t,e,r,n){this.y=t,this.index=e,this.start=r,this.closed=n}function f(t,e,r,n){this.x=t,this.segment=e,this.create=r,this.index=n}s.prototype.castUp=function(t){var e=n.le(this.coordinates,t[0]);if(e<0)return-1;this.slabs[e];var r=c(this.slabs[e],t),i=-1;if(r&&(i=r.value),this.coordinates[e]===t[0]){var s=null;if(r&&(s=r.key),e>0){var u=c(this.slabs[e-1],t);u&&(s?o(u.key,s)>0&&(s=u.key,i=u.value):(i=u.value,s=u.key))}var f=this.horizontal[e];if(f.length>0){var h=n.ge(f,t[1],l);if(h=f.length)return i;p=f[h]}}if(p.start)if(s){var d=a(s[0],s[1],[t[0],p.y]);s[0][0]>s[1][0]&&(d=-d),d>0&&(i=p.index)}else i=p.index;else p.y!==t[1]&&(i=p.index)}}}return i}},{"./lib/order-segments":298,"binary-search-bounds":31,"functional-red-black-tree":69,"robust-orientation":284}],300:[function(t,e,r){"use strict";var n=t("robust-dot-product"),i=t("robust-sum");function a(t,e){var r=i(n(t,e),[e[e.length-1]]);return r[r.length-1]}function o(t,e,r,n){var i=-e/(n-e);i<0?i=0:i>1&&(i=1);for(var a=1-i,o=t.length,s=new Array(o),l=0;l0||i>0&&u<0){var f=o(s,u,l,i);r.push(f),n.push(f.slice())}u<0?n.push(l.slice()):u>0?r.push(l.slice()):(r.push(l.slice()),n.push(l.slice())),i=u}return{positive:r,negative:n}},e.exports.positive=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c>=0&&r.push(s.slice()),n=c}return r},e.exports.negative=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c<=0&&r.push(s.slice()),n=c}return r}},{"robust-dot-product":281,"robust-sum":289}],301:[function(t,e,r){!function(){"use strict";var t={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function e(t){return i(o(t),arguments)}function n(t,r){return e.apply(null,[t].concat(r||[]))}function i(r,n){var i,a,o,s,l,c,u,f,h,p=1,d=r.length,m="";for(a=0;a=0),s.type){case"b":i=parseInt(i,10).toString(2);break;case"c":i=String.fromCharCode(parseInt(i,10));break;case"d":case"i":i=parseInt(i,10);break;case"j":i=JSON.stringify(i,null,s.width?parseInt(s.width):0);break;case"e":i=s.precision?parseFloat(i).toExponential(s.precision):parseFloat(i).toExponential();break;case"f":i=s.precision?parseFloat(i).toFixed(s.precision):parseFloat(i);break;case"g":i=s.precision?String(Number(i.toPrecision(s.precision))):parseFloat(i);break;case"o":i=(parseInt(i,10)>>>0).toString(8);break;case"s":i=String(i),i=s.precision?i.substring(0,s.precision):i;break;case"t":i=String(!!i),i=s.precision?i.substring(0,s.precision):i;break;case"T":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=s.precision?i.substring(0,s.precision):i;break;case"u":i=parseInt(i,10)>>>0;break;case"v":i=i.valueOf(),i=s.precision?i.substring(0,s.precision):i;break;case"x":i=(parseInt(i,10)>>>0).toString(16);break;case"X":i=(parseInt(i,10)>>>0).toString(16).toUpperCase()}t.json.test(s.type)?m+=i:(!t.number.test(s.type)||f&&!s.sign?h="":(h=f?"+":"-",i=i.toString().replace(t.sign,"")),c=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",u=s.width-(h+i).length,l=s.width&&u>0?c.repeat(u):"",m+=s.align?h+i+l:"0"===c?h+l+i:l+h+i)}return m}var a=Object.create(null);function o(e){if(a[e])return a[e];for(var r,n=e,i=[],o=0;n;){if(null!==(r=t.text.exec(n)))i.push(r[0]);else if(null!==(r=t.modulo.exec(n)))i.push("%");else{if(null===(r=t.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(r[2]){o|=1;var s=[],l=r[2],c=[];if(null===(c=t.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(c[1]);""!==(l=l.substring(c[0].length));)if(null!==(c=t.key_access.exec(l)))s.push(c[1]);else{if(null===(c=t.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(c[1])}r[2]=s}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");i.push({placeholder:r[0],param_no:r[1],keys:r[2],sign:r[3],pad_char:r[4],align:r[5],width:r[6],precision:r[7],type:r[8]})}n=n.substring(r[0].length)}return a[e]=i}void 0!==r&&(r.sprintf=e,r.vsprintf=n),"undefined"!=typeof window&&(window.sprintf=e,window.vsprintf=n)}()},{}],302:[function(t,e,r){"use strict";e.exports=function(t,e){if(t.dimension<=0)return{positions:[],cells:[]};if(1===t.dimension)return function(t,e){for(var r=i(t,e),n=r.length,a=new Array(n),o=new Array(n),s=0;sn|0},vertex:function(t,e,r,n,i,a,o,s,l,c,u,f,h){var p=(o<<0)+(s<<1)+(l<<2)+(c<<3)|0;if(0!==p&&15!==p)switch(p){case 0:u.push([t-.5,e-.5]);break;case 1:u.push([t-.25-.25*(n+r-2*h)/(r-n),e-.25-.25*(i+r-2*h)/(r-i)]);break;case 2:u.push([t-.75-.25*(-n-r+2*h)/(n-r),e-.25-.25*(a+n-2*h)/(n-a)]);break;case 3:u.push([t-.5,e-.5-.5*(i+r+a+n-4*h)/(r-i+n-a)]);break;case 4:u.push([t-.25-.25*(a+i-2*h)/(i-a),e-.75-.25*(-i-r+2*h)/(i-r)]);break;case 5:u.push([t-.5-.5*(n+r+a+i-4*h)/(r-n+i-a),e-.5]);break;case 6:u.push([t-.5-.25*(-n-r+a+i)/(n-r+i-a),e-.5-.25*(-i-r+a+n)/(i-r+n-a)]);break;case 7:u.push([t-.75-.25*(a+i-2*h)/(i-a),e-.75-.25*(a+n-2*h)/(n-a)]);break;case 8:u.push([t-.75-.25*(-a-i+2*h)/(a-i),e-.75-.25*(-a-n+2*h)/(a-n)]);break;case 9:u.push([t-.5-.25*(n+r+-a-i)/(r-n+a-i),e-.5-.25*(i+r+-a-n)/(r-i+a-n)]);break;case 10:u.push([t-.5-.5*(-n-r-a-i+4*h)/(n-r+a-i),e-.5]);break;case 11:u.push([t-.25-.25*(-a-i+2*h)/(a-i),e-.75-.25*(i+r-2*h)/(r-i)]);break;case 12:u.push([t-.5,e-.5-.5*(-i-r-a-n+4*h)/(i-r+a-n)]);break;case 13:u.push([t-.75-.25*(n+r-2*h)/(r-n),e-.25-.25*(-a-n+2*h)/(a-n)]);break;case 14:u.push([t-.25-.25*(-n-r+2*h)/(n-r),e-.25-.25*(-i-r+2*h)/(i-r)]);break;case 15:u.push([t-.5,e-.5])}},cell:function(t,e,r,n,i,a,o,s,l){i?s.push([t,e]):s.push([e,t])}});return function(t,e){var r=[],i=[];return n(t,r,i,e),{positions:r,cells:i}}}};var o={}},{"ndarray-extract-contour":251,"zero-crossings":318}],303:[function(t,e,r){(function(r){(function(){"use strict";e.exports=function t(e,r,i){i=i||{};var o=a[e];o||(o=a[e]={" ":{data:new Float32Array(0),shape:.2}});var s=o[r];if(!s)if(r.length<=1||!/\d/.test(r))s=o[r]=function(t){for(var e=t.cells,r=t.positions,n=new Float32Array(6*e.length),i=0,a=0,o=0;o0&&(f+=.02);var p=new Float32Array(u),d=0,m=-.5*f;for(h=0;hMath.max(r,n)?i[2]=1:r>Math.max(e,n)?i[0]=1:i[1]=1;for(var a=0,o=0,l=0;l<3;++l)a+=t[l]*t[l],o+=i[l]*t[l];for(l=0;l<3;++l)i[l]-=o/a*t[l];return s(i,i),i}function h(t,e,r,i,a,o,s,l){this.center=n(r),this.up=n(i),this.right=n(a),this.radius=n([o]),this.angle=n([s,l]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(t,e),this.computedCenter=this.center.curve(0),this.computedUp=this.up.curve(0),this.computedRight=this.right.curve(0),this.computedRadius=this.radius.curve(0),this.computedAngle=this.angle.curve(0),this.computedToward=[0,0,0],this.computedEye=[0,0,0],this.computedMatrix=new Array(16);for(var c=0;c<16;++c)this.computedMatrix[c]=.5;this.recalcMatrix(0)}var p=h.prototype;p.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},p.getDistanceLimits=function(t){var e=this.radius.bounds[0];return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},p.recalcMatrix=function(t){this.center.curve(t),this.up.curve(t),this.right.curve(t),this.radius.curve(t),this.angle.curve(t);for(var e=this.computedUp,r=this.computedRight,n=0,i=0,a=0;a<3;++a)i+=e[a]*r[a],n+=e[a]*e[a];var l=Math.sqrt(n),u=0;for(a=0;a<3;++a)r[a]-=e[a]*i/n,u+=r[a]*r[a],e[a]/=l;var f=Math.sqrt(u);for(a=0;a<3;++a)r[a]/=f;var h=this.computedToward;o(h,e,r),s(h,h);var p=Math.exp(this.computedRadius[0]),d=this.computedAngle[0],m=this.computedAngle[1],g=Math.cos(d),v=Math.sin(d),y=Math.cos(m),x=Math.sin(m),b=this.computedCenter,_=g*y,w=v*y,T=x,k=-g*x,A=-v*x,M=y,S=this.computedEye,E=this.computedMatrix;for(a=0;a<3;++a){var L=_*r[a]+w*h[a]+T*e[a];E[4*a+1]=k*r[a]+A*h[a]+M*e[a],E[4*a+2]=L,E[4*a+3]=0}var C=E[1],P=E[5],I=E[9],O=E[2],z=E[6],D=E[10],R=P*D-I*z,F=I*O-C*D,B=C*z-P*O,N=c(R,F,B);R/=N,F/=N,B/=N,E[0]=R,E[4]=F,E[8]=B;for(a=0;a<3;++a)S[a]=b[a]+E[2+4*a]*p;for(a=0;a<3;++a){u=0;for(var j=0;j<3;++j)u+=E[a+4*j]*S[j];E[12+a]=-u}E[15]=1},p.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r};var d=[0,0,0];p.rotate=function(t,e,r,n){if(this.angle.move(t,e,r),n){this.recalcMatrix(t);var i=this.computedMatrix;d[0]=i[2],d[1]=i[6],d[2]=i[10];for(var o=this.computedUp,s=this.computedRight,l=this.computedToward,c=0;c<3;++c)i[4*c]=o[c],i[4*c+1]=s[c],i[4*c+2]=l[c];a(i,i,n,d);for(c=0;c<3;++c)o[c]=i[4*c],s[c]=i[4*c+1];this.up.set(t,o[0],o[1],o[2]),this.right.set(t,s[0],s[1],s[2])}},p.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=(Math.exp(this.computedRadius[0]),i[1]),o=i[5],s=i[9],l=c(a,o,s);a/=l,o/=l,s/=l;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=c(u-=a*p,f-=o*p,h-=s*p),m=(u/=d)*e+a*r,g=(f/=d)*e+o*r,v=(h/=d)*e+s*r;this.center.move(t,m,g,v);var y=Math.exp(this.computedRadius[0]);y=Math.max(1e-4,y+n),this.radius.set(t,Math.log(y))},p.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},p.setMatrix=function(t,e,r,n){var a=1;"number"==typeof r&&(a=0|r),(a<0||a>3)&&(a=1);var o=(a+2)%3;e||(this.recalcMatrix(t),e=this.computedMatrix);var s=e[a],l=e[a+4],f=e[a+8];if(n){var h=Math.abs(s),p=Math.abs(l),d=Math.abs(f),m=Math.max(h,p,d);h===m?(s=s<0?-1:1,l=f=0):d===m?(f=f<0?-1:1,s=l=0):(l=l<0?-1:1,s=f=0)}else{var g=c(s,l,f);s/=g,l/=g,f/=g}var v,y,x=e[o],b=e[o+4],_=e[o+8],w=x*s+b*l+_*f,T=c(x-=s*w,b-=l*w,_-=f*w),k=l*(_/=T)-f*(b/=T),A=f*(x/=T)-s*_,M=s*b-l*x,S=c(k,A,M);if(k/=S,A/=S,M/=S,this.center.jump(t,q,G,Y),this.radius.idle(t),this.up.jump(t,s,l,f),this.right.jump(t,x,b,_),2===a){var E=e[1],L=e[5],C=e[9],P=E*x+L*b+C*_,I=E*k+L*A+C*M;v=R<0?-Math.PI/2:Math.PI/2,y=Math.atan2(I,P)}else{var O=e[2],z=e[6],D=e[10],R=O*s+z*l+D*f,F=O*x+z*b+D*_,B=O*k+z*A+D*M;v=Math.asin(u(R)),y=Math.atan2(B,F)}this.angle.jump(t,y,v),this.recalcMatrix(t);var N=e[2],j=e[6],U=e[10],V=this.computedMatrix;i(V,e);var H=V[15],q=V[12]/H,G=V[13]/H,Y=V[14]/H,W=Math.exp(this.computedRadius[0]);this.center.jump(t,q-N*W,G-j*W,Y-U*W)},p.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},p.idle=function(t){this.center.idle(t),this.up.idle(t),this.right.idle(t),this.radius.idle(t),this.angle.idle(t)},p.flush=function(t){this.center.flush(t),this.up.flush(t),this.right.flush(t),this.radius.flush(t),this.angle.flush(t)},p.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},p.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||this.computedCenter;var i=(n=n||this.computedUp)[0],a=n[1],o=n[2],s=c(i,a,o);if(!(s<1e-6)){i/=s,a/=s,o/=s;var l=e[0]-r[0],f=e[1]-r[1],h=e[2]-r[2],p=c(l,f,h);if(!(p<1e-6)){l/=p,f/=p,h/=p;var d=this.computedRight,m=d[0],g=d[1],v=d[2],y=i*m+a*g+o*v,x=c(m-=y*i,g-=y*a,v-=y*o);if(!(x<.01&&(x=c(m=a*h-o*f,g=o*l-i*h,v=i*f-a*l))<1e-6)){m/=x,g/=x,v/=x,this.up.set(t,i,a,o),this.right.set(t,m,g,v),this.center.set(t,r[0],r[1],r[2]),this.radius.set(t,Math.log(p));var b=a*v-o*g,_=o*m-i*v,w=i*g-a*m,T=c(b,_,w),k=i*l+a*f+o*h,A=m*l+g*f+v*h,M=(b/=T)*l+(_/=T)*f+(w/=T)*h,S=Math.asin(u(k)),E=Math.atan2(M,A),L=this.angle._state,C=L[L.length-1],P=L[L.length-2];C%=2*Math.PI;var I=Math.abs(C+2*Math.PI-E),O=Math.abs(C-E),z=Math.abs(C-2*Math.PI-E);I0?r.pop():new ArrayBuffer(t)}function d(t){return new Uint8Array(p(t),0,t)}function m(t){return new Uint16Array(p(2*t),0,t)}function g(t){return new Uint32Array(p(4*t),0,t)}function v(t){return new Int8Array(p(t),0,t)}function y(t){return new Int16Array(p(2*t),0,t)}function x(t){return new Int32Array(p(4*t),0,t)}function b(t){return new Float32Array(p(4*t),0,t)}function _(t){return new Float64Array(p(8*t),0,t)}function w(t){return o?new Uint8ClampedArray(p(t),0,t):d(t)}function T(t){return s?new BigUint64Array(p(8*t),0,t):null}function k(t){return l?new BigInt64Array(p(8*t),0,t):null}function A(t){return new DataView(p(t),0,t)}function M(t){t=n.nextPow2(t);var e=n.log2(t),r=f[e];return r.length>0?r.pop():new a(t)}r.free=function(t){if(a.isBuffer(t))f[n.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|n.log2(e);u[r].push(t)}},r.freeUint8=r.freeUint16=r.freeUint32=r.freeBigUint64=r.freeInt8=r.freeInt16=r.freeInt32=r.freeBigInt64=r.freeFloat32=r.freeFloat=r.freeFloat64=r.freeDouble=r.freeUint8Clamped=r.freeDataView=function(t){h(t.buffer)},r.freeArrayBuffer=h,r.freeBuffer=function(t){f[n.log2(t.length)].push(t)},r.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return p(t);switch(e){case"uint8":return d(t);case"uint16":return m(t);case"uint32":return g(t);case"int8":return v(t);case"int16":return y(t);case"int32":return x(t);case"float":case"float32":return b(t);case"double":case"float64":return _(t);case"uint8_clamped":return w(t);case"bigint64":return k(t);case"biguint64":return T(t);case"buffer":return M(t);case"data":case"dataview":return A(t);default:return null}return null},r.mallocArrayBuffer=p,r.mallocUint8=d,r.mallocUint16=m,r.mallocUint32=g,r.mallocInt8=v,r.mallocInt16=y,r.mallocInt32=x,r.mallocFloat32=r.mallocFloat=b,r.mallocFloat64=r.mallocDouble=_,r.mallocUint8Clamped=w,r.mallocBigUint64=T,r.mallocBigInt64=k,r.mallocDataView=A,r.mallocBuffer=M,r.clearCache=function(){for(var t=0;t<32;++t)c.UINT8[t].length=0,c.UINT16[t].length=0,c.UINT32[t].length=0,c.INT8[t].length=0,c.INT16[t].length=0,c.INT32[t].length=0,c.FLOAT[t].length=0,c.DOUBLE[t].length=0,c.BIGUINT64[t].length=0,c.BIGINT64[t].length=0,c.UINT8C[t].length=0,u[t].length=0,f[t].length=0}}).call(this)}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"bit-twiddle":32,buffer:3,dup:65}],309:[function(t,e,r){"use strict";function n(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e0&&(a=n.size),n.lineSpacing&&n.lineSpacing>0&&(o=n.lineSpacing),n.styletags&&n.styletags.breaklines&&(s.breaklines=!!n.styletags.breaklines),n.styletags&&n.styletags.bolds&&(s.bolds=!!n.styletags.bolds),n.styletags&&n.styletags.italics&&(s.italics=!!n.styletags.italics),n.styletags&&n.styletags.subscripts&&(s.subscripts=!!n.styletags.subscripts),n.styletags&&n.styletags.superscripts&&(s.superscripts=!!n.styletags.superscripts));return r.font=[n.fontStyle,n.fontVariant,n.fontWeight,a+"px",n.font].filter((function(t){return t})).join(" "),r.textAlign="start",r.textBaseline="alphabetic",r.direction="ltr",h(function(t,e,r,n,a,o){r=r.replace(/\n/g,""),r=!0===o.breaklines?r.replace(/\/g,"\n"):r.replace(/\/g," ");var s="",l=[];for(p=0;p-1?parseInt(t[1+i]):0,l=a>-1?parseInt(r[1+a]):0;s!==l&&(n=n.replace(S(),"?px "),g*=Math.pow(.75,l-s),n=n.replace("?px ",S())),m+=.25*x*(l-s)}if(!0===o.superscripts){var c=t.indexOf("+"),u=r.indexOf("+"),f=c>-1?parseInt(t[1+c]):0,h=u>-1?parseInt(r[1+u]):0;f!==h&&(n=n.replace(S(),"?px "),g*=Math.pow(.75,h-f),n=n.replace("?px ",S())),m-=.25*x*(h-f)}if(!0===o.bolds){var p=t.indexOf("b|")>-1,d=r.indexOf("b|")>-1;!p&&d&&(n=v?n.replace("italic ","italic bold "):"bold "+n),p&&!d&&(n=n.replace("bold ",""))}if(!0===o.italics){var v=t.indexOf("i|")>-1,y=r.indexOf("i|")>-1;!v&&y&&(n="italic "+n),v&&!y&&(n=n.replace("italic ",""))}e.font=n}for(h=0;h",a="",o=i.length,s=a.length,l="+"===e[0]||"-"===e[0],c=0,u=-s;c>-1&&-1!==(c=r.indexOf(i,c))&&-1!==(u=r.indexOf(a,c+o))&&!(u<=c);){for(var f=c;f=u)n[f]=null,r=r.substr(0,f)+" "+r.substr(f+1);else if(null!==n[f]){var h=n[f].indexOf(e[0]);-1===h?n[f]+=e:l&&(n[f]=n[f].substr(0,h+1)+(1+parseInt(n[f][h+1]))+n[f].substr(h+2))}var p=c+o,d=r.substr(p,u-p).indexOf(i);c=-1!==d?d:u+s}return n}function u(t,e){var r=n(t,128);return e?a(r.cells,r.positions,.25):{edges:r.cells,positions:r.positions}}function f(t,e,r,n){var i=u(t,n),a=function(t,e,r){for(var n=e.textAlign||"start",i=e.textBaseline||"alphabetic",a=[1<<30,1<<30],o=[0,0],s=t.length,l=0;l=0?e[a]:i}))},has___:{value:y((function(e){var n=v(e);return n?r in n:t.indexOf(e)>=0}))},set___:{value:y((function(n,i){var a,o=v(n);return o?o[r]=i:(a=t.indexOf(n))>=0?e[a]=i:(a=t.length,e[a]=i,t[a]=n),this}))},delete___:{value:y((function(n){var i,a,o=v(n);return o?r in o&&delete o[r]:!((i=t.indexOf(n))<0)&&(a=t.length-1,t[i]=void 0,e[i]=e[a],t[i]=t[a],t.length=a,e.length=a,!0)}))}})};d.prototype=Object.create(Object.prototype,{get:{value:function(t,e){return this.get___(t,e)},writable:!0,configurable:!0},has:{value:function(t){return this.has___(t)},writable:!0,configurable:!0},set:{value:function(t,e){return this.set___(t,e)},writable:!0,configurable:!0},delete:{value:function(t){return this.delete___(t)},writable:!0,configurable:!0}}),"function"==typeof r?function(){function n(){this instanceof d||x();var e,n=new r,i=void 0,a=!1;return e=t?function(t,e){return n.set(t,e),n.has(t)||(i||(i=new d),i.set(t,e)),this}:function(t,e){if(a)try{n.set(t,e)}catch(r){i||(i=new d),i.set___(t,e)}else n.set(t,e);return this},Object.create(d.prototype,{get___:{value:y((function(t,e){return i?n.has(t)?n.get(t):i.get___(t,e):n.get(t,e)}))},has___:{value:y((function(t){return n.has(t)||!!i&&i.has___(t)}))},set___:{value:y(e)},delete___:{value:y((function(t){var e=!!n.delete(t);return i&&i.delete___(t)||e}))},permitHostObjects___:{value:y((function(t){if(t!==m)throw new Error("bogus call to permitHostObjects___");a=!0}))}})}t&&"undefined"!=typeof Proxy&&(Proxy=void 0),n.prototype=d.prototype,e.exports=n,Object.defineProperty(WeakMap.prototype,"constructor",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():("undefined"!=typeof Proxy&&(Proxy=void 0),e.exports=d)}function m(t){t.permitHostObjects___&&t.permitHostObjects___(m)}function g(t){return!("weakmap:"==t.substr(0,"weakmap:".length)&&"___"===t.substr(t.length-3))}function v(t){if(t!==Object(t))throw new TypeError("Not an object: "+t);var e=t[l];if(e&&e.key===t)return e;if(s(t)){e={key:t};try{return o(t,l,{value:e,writable:!1,enumerable:!1,configurable:!1}),e}catch(t){return}}}function y(t){return t.prototype=null,Object.freeze(t)}function x(){h||"undefined"==typeof console||(h=!0,console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."))}}()},{}],314:[function(t,e,r){var n=t("./hidden-store.js");e.exports=function(){var t={};return function(e){if(("object"!=typeof e||null===e)&&"function"!=typeof e)throw new Error("Weakmap-shim: Key must be object");var r=e.valueOf(t);return r&&r.identity===t?r:n(e,t)}}},{"./hidden-store.js":315}],315:[function(t,e,r){e.exports=function(t,e){var r={identity:e},n=t.valueOf;return Object.defineProperty(t,"valueOf",{value:function(t){return t!==e?n.apply(this,arguments):r},writable:!0}),r}},{}],316:[function(t,e,r){var n=t("./create-store.js");e.exports=function(){var t=n();return{get:function(e,r){var n=t(e);return n.hasOwnProperty("value")?n.value:r},set:function(e,r){return t(e).value=r,this},has:function(e){return"value"in t(e)},delete:function(e){return delete t(e).value}}}},{"./create-store.js":314}],317:[function(t,e,r){"use strict";var n,i=function(){return function(t,e,r,n,i,a){var o=t[0],s=r[0],l=[0],c=s;n|=0;var u=0,f=s;for(u=0;u=0!=p>=0&&i.push(l[0]+.5+.5*(h+p)/(h-p)),n+=f,++l[0]}}};e.exports=(n={funcName:{funcName:"zeroCrossings"}.funcName},function(t){var e={};return function(r,n,i){var a=r.dtype,o=r.order,s=[a,o.join()].join(),l=e[s];return l||(e[s]=l=t([a,o])),l(r.shape.slice(0),r.data,r.stride,0|r.offset,n,i)}}(i.bind(void 0,n)))},{}],318:[function(t,e,r){"use strict";e.exports=function(t,e){var r=[];return e=+e||0,n(t.hi(t.shape[0]-1),r,e),r};var n=t("./lib/zc-core")},{"./lib/zc-core":317}]},{},[6])(6)}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[27])(27)}));
    @@ -277,7 +277,7 @@ * Copyright (c) 2014-2015, Jon Schlinkert. * Licensed under the MIT License. */ -"use strict";var n,i="";e.exports=function(t,e){if("string"!=typeof t)throw new TypeError("expected a string");if(1===e)return t;if(2===e)return t+t;var r=t.length*e;if(n!==t||void 0===n)n=t,i="";else if(i.length>=r)return i.substr(0,r);for(;r>i.length&&e>1;)1&e&&(i+=t),e>>=1,t+=t;return i=(i+=t).substr(0,r)}},{}],278:[function(t,e,r){(function(t){(function(){e.exports=t.performance&&t.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}}).call(this)}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],279:[function(t,e,r){"use strict";e.exports=function(t){for(var e=t.length,r=t[t.length-1],n=e,i=e-2;i>=0;--i){var a=r,o=t[i];(l=o-((r=a+o)-a))&&(t[--n]=r,r=l)}var s=0;for(i=n;i0){if(a<=0)return o;n=i+a}else{if(!(i<0))return o;if(a>=0)return o;n=-(i+a)}var s=33306690738754716e-32*n;return o>=s||o<=-s?o:f(t,e,r)},function(t,e,r,n){var i=t[0]-n[0],a=e[0]-n[0],o=r[0]-n[0],s=t[1]-n[1],l=e[1]-n[1],c=r[1]-n[1],u=t[2]-n[2],f=e[2]-n[2],p=r[2]-n[2],d=a*c,m=o*l,g=o*s,v=i*c,y=i*l,x=a*s,b=u*(d-m)+f*(g-v)+p*(y-x),_=7771561172376103e-31*((Math.abs(d)+Math.abs(m))*Math.abs(u)+(Math.abs(g)+Math.abs(v))*Math.abs(f)+(Math.abs(y)+Math.abs(x))*Math.abs(p));return b>_||-b>_?b:h(t,e,r,n)}];function d(t){var e=p[t.length];return e||(e=p[t.length]=u(t.length)),e.apply(void 0,t)}function m(t,e,r,n,i,a,o){return function(e,r,s,l,c){switch(arguments.length){case 0:case 1:return 0;case 2:return n(e,r);case 3:return i(e,r,s);case 4:return a(e,r,s,l);case 5:return o(e,r,s,l,c)}for(var u=new Array(arguments.length),f=0;f0&&o>0||a<0&&o<0)return!1;var s=n(r,t,e),l=n(i,t,e);if(s>0&&l>0||s<0&&l<0)return!1;if(0===a&&0===o&&0===s&&0===l)return function(t,e,r,n){for(var i=0;i<2;++i){var a=t[i],o=e[i],s=Math.min(a,o),l=Math.max(a,o),c=r[i],u=n[i],f=Math.min(c,u);if(Math.max(c,u)=n?(i=f,(l+=1)=n?(i=f,(l+=1)>1,c=e[2*l+1];if(c===a)return l;a>1,c=e[2*l+1];if(c===a)return l;a>1,c=e[2*l+1];if(c===a)return l;a>1,s=a(t[o],e);s<=0?(0===s&&(i=o),r=o+1):s>0&&(n=o-1)}return i}function u(t,e){for(var r=new Array(t.length),i=0,o=r.length;i=t.length||0!==a(t[g],s)););}return r}function f(t,e){if(e<0)return[];for(var r=[],i=(1<>>u&1&&c.push(i[u]);e.push(c)}return s(e)},r.skeleton=f,r.boundary=function(t){for(var e=[],r=0,n=t.length;r>1:(t>>1)-1}function x(t){for(var e=v(t);;){var r=e,n=2*t+1,i=2*(t+1),a=t;if(n0;){var r=y(t);if(r>=0)if(e0){var t=k[0];return g(0,M-1),M-=1,x(0),t}return-1}function w(t,e){var r=k[t];return c[r]===e?t:(c[r]=-1/0,b(t),_(),c[r]=e,b((M+=1)-1))}function T(t){if(!u[t]){u[t]=!0;var e=s[t],r=l[t];s[r]>=0&&(s[r]=e),l[e]>=0&&(l[e]=r),A[e]>=0&&w(A[e],m(e)),A[r]>=0&&w(A[r],m(r))}}var k=[],A=new Array(a);for(f=0;f>1;f>=0;--f)x(f);for(;;){var S=_();if(S<0||c[S]>r)break;T(S)}var E=[];for(f=0;f=0&&r>=0&&e!==r){var n=A[e],i=A[r];n!==i&&C.push([n,i])}})),i.unique(i.normalize(C)),{positions:E,edges:C}};var n=t("robust-orientation"),i=t("simplicial-complex")},{"robust-orientation":284,"simplicial-complex":295}],298:[function(t,e,r){"use strict";e.exports=function(t,e){var r,a,o,s;if(e[0][0]e[1][0]))return i(e,t);r=e[1],a=e[0]}if(t[0][0]t[1][0]))return-i(t,e);o=t[1],s=t[0]}var l=n(r,a,s),c=n(r,a,o);if(l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;if(l=n(s,o,a),c=n(s,o,r),l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;return a[0]-s[0]};var n=t("robust-orientation");function i(t,e){var r,i,a,o;if(e[0][0]e[1][0])){var s=Math.min(t[0][1],t[1][1]),l=Math.max(t[0][1],t[1][1]),c=Math.min(e[0][1],e[1][1]),u=Math.max(e[0][1],e[1][1]);return lu?s-u:l-u}r=e[1],i=e[0]}t[0][1]0)if(e[0]!==o[1][0])r=t,t=t.right;else{if(l=c(t.right,e))return l;t=t.left}else{if(e[0]!==o[1][0])return t;var l;if(l=c(t.right,e))return l;t=t.left}}return r}function u(t,e,r,n){this.y=t,this.index=e,this.start=r,this.closed=n}function f(t,e,r,n){this.x=t,this.segment=e,this.create=r,this.index=n}s.prototype.castUp=function(t){var e=n.le(this.coordinates,t[0]);if(e<0)return-1;this.slabs[e];var r=c(this.slabs[e],t),i=-1;if(r&&(i=r.value),this.coordinates[e]===t[0]){var s=null;if(r&&(s=r.key),e>0){var u=c(this.slabs[e-1],t);u&&(s?o(u.key,s)>0&&(s=u.key,i=u.value):(i=u.value,s=u.key))}var f=this.horizontal[e];if(f.length>0){var h=n.ge(f,t[1],l);if(h=f.length)return i;p=f[h]}}if(p.start)if(s){var d=a(s[0],s[1],[t[0],p.y]);s[0][0]>s[1][0]&&(d=-d),d>0&&(i=p.index)}else i=p.index;else p.y!==t[1]&&(i=p.index)}}}return i}},{"./lib/order-segments":298,"binary-search-bounds":31,"functional-red-black-tree":69,"robust-orientation":284}],300:[function(t,e,r){"use strict";var n=t("robust-dot-product"),i=t("robust-sum");function a(t,e){var r=i(n(t,e),[e[e.length-1]]);return r[r.length-1]}function o(t,e,r,n){var i=-e/(n-e);i<0?i=0:i>1&&(i=1);for(var a=1-i,o=t.length,s=new Array(o),l=0;l0||i>0&&u<0){var f=o(s,u,l,i);r.push(f),n.push(f.slice())}u<0?n.push(l.slice()):u>0?r.push(l.slice()):(r.push(l.slice()),n.push(l.slice())),i=u}return{positive:r,negative:n}},e.exports.positive=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c>=0&&r.push(s.slice()),n=c}return r},e.exports.negative=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c<=0&&r.push(s.slice()),n=c}return r}},{"robust-dot-product":281,"robust-sum":289}],301:[function(t,e,r){!function(){"use strict";var t={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function e(t){return i(o(t),arguments)}function n(t,r){return e.apply(null,[t].concat(r||[]))}function i(r,n){var i,a,o,s,l,c,u,f,h,p=1,d=r.length,m="";for(a=0;a=0),s.type){case"b":i=parseInt(i,10).toString(2);break;case"c":i=String.fromCharCode(parseInt(i,10));break;case"d":case"i":i=parseInt(i,10);break;case"j":i=JSON.stringify(i,null,s.width?parseInt(s.width):0);break;case"e":i=s.precision?parseFloat(i).toExponential(s.precision):parseFloat(i).toExponential();break;case"f":i=s.precision?parseFloat(i).toFixed(s.precision):parseFloat(i);break;case"g":i=s.precision?String(Number(i.toPrecision(s.precision))):parseFloat(i);break;case"o":i=(parseInt(i,10)>>>0).toString(8);break;case"s":i=String(i),i=s.precision?i.substring(0,s.precision):i;break;case"t":i=String(!!i),i=s.precision?i.substring(0,s.precision):i;break;case"T":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=s.precision?i.substring(0,s.precision):i;break;case"u":i=parseInt(i,10)>>>0;break;case"v":i=i.valueOf(),i=s.precision?i.substring(0,s.precision):i;break;case"x":i=(parseInt(i,10)>>>0).toString(16);break;case"X":i=(parseInt(i,10)>>>0).toString(16).toUpperCase()}t.json.test(s.type)?m+=i:(!t.number.test(s.type)||f&&!s.sign?h="":(h=f?"+":"-",i=i.toString().replace(t.sign,"")),c=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",u=s.width-(h+i).length,l=s.width&&u>0?c.repeat(u):"",m+=s.align?h+i+l:"0"===c?h+l+i:l+h+i)}return m}var a=Object.create(null);function o(e){if(a[e])return a[e];for(var r,n=e,i=[],o=0;n;){if(null!==(r=t.text.exec(n)))i.push(r[0]);else if(null!==(r=t.modulo.exec(n)))i.push("%");else{if(null===(r=t.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(r[2]){o|=1;var s=[],l=r[2],c=[];if(null===(c=t.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(c[1]);""!==(l=l.substring(c[0].length));)if(null!==(c=t.key_access.exec(l)))s.push(c[1]);else{if(null===(c=t.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(c[1])}r[2]=s}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");i.push({placeholder:r[0],param_no:r[1],keys:r[2],sign:r[3],pad_char:r[4],align:r[5],width:r[6],precision:r[7],type:r[8]})}n=n.substring(r[0].length)}return a[e]=i}void 0!==r&&(r.sprintf=e,r.vsprintf=n),"undefined"!=typeof window&&(window.sprintf=e,window.vsprintf=n)}()},{}],302:[function(t,e,r){"use strict";e.exports=function(t,e){if(t.dimension<=0)return{positions:[],cells:[]};if(1===t.dimension)return function(t,e){for(var r=i(t,e),n=r.length,a=new Array(n),o=new Array(n),s=0;sn|0},vertex:function(t,e,r,n,i,a,o,s,l,c,u,f,h){var p=(o<<0)+(s<<1)+(l<<2)+(c<<3)|0;if(0!==p&&15!==p)switch(p){case 0:u.push([t-.5,e-.5]);break;case 1:u.push([t-.25-.25*(n+r-2*h)/(r-n),e-.25-.25*(i+r-2*h)/(r-i)]);break;case 2:u.push([t-.75-.25*(-n-r+2*h)/(n-r),e-.25-.25*(a+n-2*h)/(n-a)]);break;case 3:u.push([t-.5,e-.5-.5*(i+r+a+n-4*h)/(r-i+n-a)]);break;case 4:u.push([t-.25-.25*(a+i-2*h)/(i-a),e-.75-.25*(-i-r+2*h)/(i-r)]);break;case 5:u.push([t-.5-.5*(n+r+a+i-4*h)/(r-n+i-a),e-.5]);break;case 6:u.push([t-.5-.25*(-n-r+a+i)/(n-r+i-a),e-.5-.25*(-i-r+a+n)/(i-r+n-a)]);break;case 7:u.push([t-.75-.25*(a+i-2*h)/(i-a),e-.75-.25*(a+n-2*h)/(n-a)]);break;case 8:u.push([t-.75-.25*(-a-i+2*h)/(a-i),e-.75-.25*(-a-n+2*h)/(a-n)]);break;case 9:u.push([t-.5-.25*(n+r+-a-i)/(r-n+a-i),e-.5-.25*(i+r+-a-n)/(r-i+a-n)]);break;case 10:u.push([t-.5-.5*(-n-r-a-i+4*h)/(n-r+a-i),e-.5]);break;case 11:u.push([t-.25-.25*(-a-i+2*h)/(a-i),e-.75-.25*(i+r-2*h)/(r-i)]);break;case 12:u.push([t-.5,e-.5-.5*(-i-r-a-n+4*h)/(i-r+a-n)]);break;case 13:u.push([t-.75-.25*(n+r-2*h)/(r-n),e-.25-.25*(-a-n+2*h)/(a-n)]);break;case 14:u.push([t-.25-.25*(-n-r+2*h)/(n-r),e-.25-.25*(-i-r+2*h)/(i-r)]);break;case 15:u.push([t-.5,e-.5])}},cell:function(t,e,r,n,i,a,o,s,l){i?s.push([t,e]):s.push([e,t])}});return function(t,e){var r=[],i=[];return n(t,r,i,e),{positions:r,cells:i}}}};var o={}},{"ndarray-extract-contour":251,"zero-crossings":318}],303:[function(t,e,r){(function(r){(function(){"use strict";e.exports=function t(e,r,i){i=i||{};var o=a[e];o||(o=a[e]={" ":{data:new Float32Array(0),shape:.2}});var s=o[r];if(!s)if(r.length<=1||!/\d/.test(r))s=o[r]=function(t){for(var e=t.cells,r=t.positions,n=new Float32Array(6*e.length),i=0,a=0,o=0;o0&&(f+=.02);var p=new Float32Array(u),d=0,m=-.5*f;for(h=0;hMath.max(r,n)?i[2]=1:r>Math.max(e,n)?i[0]=1:i[1]=1;for(var a=0,o=0,l=0;l<3;++l)a+=t[l]*t[l],o+=i[l]*t[l];for(l=0;l<3;++l)i[l]-=o/a*t[l];return s(i,i),i}function h(t,e,r,i,a,o,s,l){this.center=n(r),this.up=n(i),this.right=n(a),this.radius=n([o]),this.angle=n([s,l]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(t,e),this.computedCenter=this.center.curve(0),this.computedUp=this.up.curve(0),this.computedRight=this.right.curve(0),this.computedRadius=this.radius.curve(0),this.computedAngle=this.angle.curve(0),this.computedToward=[0,0,0],this.computedEye=[0,0,0],this.computedMatrix=new Array(16);for(var c=0;c<16;++c)this.computedMatrix[c]=.5;this.recalcMatrix(0)}var p=h.prototype;p.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},p.getDistanceLimits=function(t){var e=this.radius.bounds[0];return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},p.recalcMatrix=function(t){this.center.curve(t),this.up.curve(t),this.right.curve(t),this.radius.curve(t),this.angle.curve(t);for(var e=this.computedUp,r=this.computedRight,n=0,i=0,a=0;a<3;++a)i+=e[a]*r[a],n+=e[a]*e[a];var l=Math.sqrt(n),u=0;for(a=0;a<3;++a)r[a]-=e[a]*i/n,u+=r[a]*r[a],e[a]/=l;var f=Math.sqrt(u);for(a=0;a<3;++a)r[a]/=f;var h=this.computedToward;o(h,e,r),s(h,h);var p=Math.exp(this.computedRadius[0]),d=this.computedAngle[0],m=this.computedAngle[1],g=Math.cos(d),v=Math.sin(d),y=Math.cos(m),x=Math.sin(m),b=this.computedCenter,_=g*y,w=v*y,T=x,k=-g*x,A=-v*x,M=y,S=this.computedEye,E=this.computedMatrix;for(a=0;a<3;++a){var L=_*r[a]+w*h[a]+T*e[a];E[4*a+1]=k*r[a]+A*h[a]+M*e[a],E[4*a+2]=L,E[4*a+3]=0}var C=E[1],P=E[5],I=E[9],O=E[2],z=E[6],D=E[10],R=P*D-I*z,F=I*O-C*D,B=C*z-P*O,N=c(R,F,B);R/=N,F/=N,B/=N,E[0]=R,E[4]=F,E[8]=B;for(a=0;a<3;++a)S[a]=b[a]+E[2+4*a]*p;for(a=0;a<3;++a){u=0;for(var j=0;j<3;++j)u+=E[a+4*j]*S[j];E[12+a]=-u}E[15]=1},p.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r};var d=[0,0,0];p.rotate=function(t,e,r,n){if(this.angle.move(t,e,r),n){this.recalcMatrix(t);var i=this.computedMatrix;d[0]=i[2],d[1]=i[6],d[2]=i[10];for(var o=this.computedUp,s=this.computedRight,l=this.computedToward,c=0;c<3;++c)i[4*c]=o[c],i[4*c+1]=s[c],i[4*c+2]=l[c];a(i,i,n,d);for(c=0;c<3;++c)o[c]=i[4*c],s[c]=i[4*c+1];this.up.set(t,o[0],o[1],o[2]),this.right.set(t,s[0],s[1],s[2])}},p.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=(Math.exp(this.computedRadius[0]),i[1]),o=i[5],s=i[9],l=c(a,o,s);a/=l,o/=l,s/=l;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=c(u-=a*p,f-=o*p,h-=s*p),m=(u/=d)*e+a*r,g=(f/=d)*e+o*r,v=(h/=d)*e+s*r;this.center.move(t,m,g,v);var y=Math.exp(this.computedRadius[0]);y=Math.max(1e-4,y+n),this.radius.set(t,Math.log(y))},p.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},p.setMatrix=function(t,e,r,n){var a=1;"number"==typeof r&&(a=0|r),(a<0||a>3)&&(a=1);var o=(a+2)%3;e||(this.recalcMatrix(t),e=this.computedMatrix);var s=e[a],l=e[a+4],f=e[a+8];if(n){var h=Math.abs(s),p=Math.abs(l),d=Math.abs(f),m=Math.max(h,p,d);h===m?(s=s<0?-1:1,l=f=0):d===m?(f=f<0?-1:1,s=l=0):(l=l<0?-1:1,s=f=0)}else{var g=c(s,l,f);s/=g,l/=g,f/=g}var v,y,x=e[o],b=e[o+4],_=e[o+8],w=x*s+b*l+_*f,T=c(x-=s*w,b-=l*w,_-=f*w),k=l*(_/=T)-f*(b/=T),A=f*(x/=T)-s*_,M=s*b-l*x,S=c(k,A,M);if(k/=S,A/=S,M/=S,this.center.jump(t,q,G,Y),this.radius.idle(t),this.up.jump(t,s,l,f),this.right.jump(t,x,b,_),2===a){var E=e[1],L=e[5],C=e[9],P=E*x+L*b+C*_,I=E*k+L*A+C*M;v=R<0?-Math.PI/2:Math.PI/2,y=Math.atan2(I,P)}else{var O=e[2],z=e[6],D=e[10],R=O*s+z*l+D*f,F=O*x+z*b+D*_,B=O*k+z*A+D*M;v=Math.asin(u(R)),y=Math.atan2(B,F)}this.angle.jump(t,y,v),this.recalcMatrix(t);var N=e[2],j=e[6],U=e[10],V=this.computedMatrix;i(V,e);var H=V[15],q=V[12]/H,G=V[13]/H,Y=V[14]/H,W=Math.exp(this.computedRadius[0]);this.center.jump(t,q-N*W,G-j*W,Y-U*W)},p.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},p.idle=function(t){this.center.idle(t),this.up.idle(t),this.right.idle(t),this.radius.idle(t),this.angle.idle(t)},p.flush=function(t){this.center.flush(t),this.up.flush(t),this.right.flush(t),this.radius.flush(t),this.angle.flush(t)},p.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},p.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||this.computedCenter;var i=(n=n||this.computedUp)[0],a=n[1],o=n[2],s=c(i,a,o);if(!(s<1e-6)){i/=s,a/=s,o/=s;var l=e[0]-r[0],f=e[1]-r[1],h=e[2]-r[2],p=c(l,f,h);if(!(p<1e-6)){l/=p,f/=p,h/=p;var d=this.computedRight,m=d[0],g=d[1],v=d[2],y=i*m+a*g+o*v,x=c(m-=y*i,g-=y*a,v-=y*o);if(!(x<.01&&(x=c(m=a*h-o*f,g=o*l-i*h,v=i*f-a*l))<1e-6)){m/=x,g/=x,v/=x,this.up.set(t,i,a,o),this.right.set(t,m,g,v),this.center.set(t,r[0],r[1],r[2]),this.radius.set(t,Math.log(p));var b=a*v-o*g,_=o*m-i*v,w=i*g-a*m,T=c(b,_,w),k=i*l+a*f+o*h,A=m*l+g*f+v*h,M=(b/=T)*l+(_/=T)*f+(w/=T)*h,S=Math.asin(u(k)),E=Math.atan2(M,A),L=this.angle._state,C=L[L.length-1],P=L[L.length-2];C%=2*Math.PI;var I=Math.abs(C+2*Math.PI-E),O=Math.abs(C-E),z=Math.abs(C-2*Math.PI-E);I0?r.pop():new ArrayBuffer(t)}function d(t){return new Uint8Array(p(t),0,t)}function m(t){return new Uint16Array(p(2*t),0,t)}function g(t){return new Uint32Array(p(4*t),0,t)}function v(t){return new Int8Array(p(t),0,t)}function y(t){return new Int16Array(p(2*t),0,t)}function x(t){return new Int32Array(p(4*t),0,t)}function b(t){return new Float32Array(p(4*t),0,t)}function _(t){return new Float64Array(p(8*t),0,t)}function w(t){return o?new Uint8ClampedArray(p(t),0,t):d(t)}function T(t){return s?new BigUint64Array(p(8*t),0,t):null}function k(t){return l?new BigInt64Array(p(8*t),0,t):null}function A(t){return new DataView(p(t),0,t)}function M(t){t=n.nextPow2(t);var e=n.log2(t),r=f[e];return r.length>0?r.pop():new a(t)}r.free=function(t){if(a.isBuffer(t))f[n.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|n.log2(e);u[r].push(t)}},r.freeUint8=r.freeUint16=r.freeUint32=r.freeBigUint64=r.freeInt8=r.freeInt16=r.freeInt32=r.freeBigInt64=r.freeFloat32=r.freeFloat=r.freeFloat64=r.freeDouble=r.freeUint8Clamped=r.freeDataView=function(t){h(t.buffer)},r.freeArrayBuffer=h,r.freeBuffer=function(t){f[n.log2(t.length)].push(t)},r.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return p(t);switch(e){case"uint8":return d(t);case"uint16":return m(t);case"uint32":return g(t);case"int8":return v(t);case"int16":return y(t);case"int32":return x(t);case"float":case"float32":return b(t);case"double":case"float64":return _(t);case"uint8_clamped":return w(t);case"bigint64":return k(t);case"biguint64":return T(t);case"buffer":return M(t);case"data":case"dataview":return A(t);default:return null}return null},r.mallocArrayBuffer=p,r.mallocUint8=d,r.mallocUint16=m,r.mallocUint32=g,r.mallocInt8=v,r.mallocInt16=y,r.mallocInt32=x,r.mallocFloat32=r.mallocFloat=b,r.mallocFloat64=r.mallocDouble=_,r.mallocUint8Clamped=w,r.mallocBigUint64=T,r.mallocBigInt64=k,r.mallocDataView=A,r.mallocBuffer=M,r.clearCache=function(){for(var t=0;t<32;++t)c.UINT8[t].length=0,c.UINT16[t].length=0,c.UINT32[t].length=0,c.INT8[t].length=0,c.INT16[t].length=0,c.INT32[t].length=0,c.FLOAT[t].length=0,c.DOUBLE[t].length=0,c.BIGUINT64[t].length=0,c.BIGINT64[t].length=0,c.UINT8C[t].length=0,u[t].length=0,f[t].length=0}}).call(this)}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"bit-twiddle":32,buffer:3,dup:65}],309:[function(t,e,r){"use strict";function n(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e0&&(a=n.size),n.lineSpacing&&n.lineSpacing>0&&(o=n.lineSpacing),n.styletags&&n.styletags.breaklines&&(s.breaklines=!!n.styletags.breaklines),n.styletags&&n.styletags.bolds&&(s.bolds=!!n.styletags.bolds),n.styletags&&n.styletags.italics&&(s.italics=!!n.styletags.italics),n.styletags&&n.styletags.subscripts&&(s.subscripts=!!n.styletags.subscripts),n.styletags&&n.styletags.superscripts&&(s.superscripts=!!n.styletags.superscripts));return r.font=[n.fontStyle,n.fontVariant,n.fontWeight,a+"px",n.font].filter((function(t){return t})).join(" "),r.textAlign="start",r.textBaseline="alphabetic",r.direction="ltr",h(function(t,e,r,n,a,o){r=r.replace(/\n/g,""),r=!0===o.breaklines?r.replace(/\/g,"\n"):r.replace(/\/g," ");var s="",l=[];for(p=0;p-1?parseInt(t[1+i]):0,l=a>-1?parseInt(r[1+a]):0;s!==l&&(n=n.replace(S(),"?px "),g*=Math.pow(.75,l-s),n=n.replace("?px ",S())),m+=.25*x*(l-s)}if(!0===o.superscripts){var c=t.indexOf("+"),u=r.indexOf("+"),f=c>-1?parseInt(t[1+c]):0,h=u>-1?parseInt(r[1+u]):0;f!==h&&(n=n.replace(S(),"?px "),g*=Math.pow(.75,h-f),n=n.replace("?px ",S())),m-=.25*x*(h-f)}if(!0===o.bolds){var p=t.indexOf("b|")>-1,d=r.indexOf("b|")>-1;!p&&d&&(n=v?n.replace("italic ","italic bold "):"bold "+n),p&&!d&&(n=n.replace("bold ",""))}if(!0===o.italics){var v=t.indexOf("i|")>-1,y=r.indexOf("i|")>-1;!v&&y&&(n="italic "+n),v&&!y&&(n=n.replace("italic ",""))}e.font=n}for(h=0;h",a="",o=i.length,s=a.length,l="+"===e[0]||"-"===e[0],c=0,u=-s;c>-1&&-1!==(c=r.indexOf(i,c))&&-1!==(u=r.indexOf(a,c+o))&&!(u<=c);){for(var f=c;f=u)n[f]=null,r=r.substr(0,f)+" "+r.substr(f+1);else if(null!==n[f]){var h=n[f].indexOf(e[0]);-1===h?n[f]+=e:l&&(n[f]=n[f].substr(0,h+1)+(1+parseInt(n[f][h+1]))+n[f].substr(h+2))}var p=c+o,d=r.substr(p,u-p).indexOf(i);c=-1!==d?d:u+s}return n}function u(t,e){var r=n(t,128);return e?a(r.cells,r.positions,.25):{edges:r.cells,positions:r.positions}}function f(t,e,r,n){var i=u(t,n),a=function(t,e,r){for(var n=e.textAlign||"start",i=e.textBaseline||"alphabetic",a=[1<<30,1<<30],o=[0,0],s=t.length,l=0;l=0?e[a]:i}))},has___:{value:y((function(e){var n=v(e);return n?r in n:t.indexOf(e)>=0}))},set___:{value:y((function(n,i){var a,o=v(n);return o?o[r]=i:(a=t.indexOf(n))>=0?e[a]=i:(a=t.length,e[a]=i,t[a]=n),this}))},delete___:{value:y((function(n){var i,a,o=v(n);return o?r in o&&delete o[r]:!((i=t.indexOf(n))<0)&&(a=t.length-1,t[i]=void 0,e[i]=e[a],t[i]=t[a],t.length=a,e.length=a,!0)}))}})};d.prototype=Object.create(Object.prototype,{get:{value:function(t,e){return this.get___(t,e)},writable:!0,configurable:!0},has:{value:function(t){return this.has___(t)},writable:!0,configurable:!0},set:{value:function(t,e){return this.set___(t,e)},writable:!0,configurable:!0},delete:{value:function(t){return this.delete___(t)},writable:!0,configurable:!0}}),"function"==typeof r?function(){function n(){this instanceof d||x();var e,n=new r,i=void 0,a=!1;return e=t?function(t,e){return n.set(t,e),n.has(t)||(i||(i=new d),i.set(t,e)),this}:function(t,e){if(a)try{n.set(t,e)}catch(r){i||(i=new d),i.set___(t,e)}else n.set(t,e);return this},Object.create(d.prototype,{get___:{value:y((function(t,e){return i?n.has(t)?n.get(t):i.get___(t,e):n.get(t,e)}))},has___:{value:y((function(t){return n.has(t)||!!i&&i.has___(t)}))},set___:{value:y(e)},delete___:{value:y((function(t){var e=!!n.delete(t);return i&&i.delete___(t)||e}))},permitHostObjects___:{value:y((function(t){if(t!==m)throw new Error("bogus call to permitHostObjects___");a=!0}))}})}t&&"undefined"!=typeof Proxy&&(Proxy=void 0),n.prototype=d.prototype,e.exports=n,Object.defineProperty(WeakMap.prototype,"constructor",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():("undefined"!=typeof Proxy&&(Proxy=void 0),e.exports=d)}function m(t){t.permitHostObjects___&&t.permitHostObjects___(m)}function g(t){return!("weakmap:"==t.substr(0,"weakmap:".length)&&"___"===t.substr(t.length-3))}function v(t){if(t!==Object(t))throw new TypeError("Not an object: "+t);var e=t[l];if(e&&e.key===t)return e;if(s(t)){e={key:t};try{return o(t,l,{value:e,writable:!1,enumerable:!1,configurable:!1}),e}catch(t){return}}}function y(t){return t.prototype=null,Object.freeze(t)}function x(){h||"undefined"==typeof console||(h=!0,console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."))}}()},{}],314:[function(t,e,r){var n=t("./hidden-store.js");e.exports=function(){var t={};return function(e){if(("object"!=typeof e||null===e)&&"function"!=typeof e)throw new Error("Weakmap-shim: Key must be object");var r=e.valueOf(t);return r&&r.identity===t?r:n(e,t)}}},{"./hidden-store.js":315}],315:[function(t,e,r){e.exports=function(t,e){var r={identity:e},n=t.valueOf;return Object.defineProperty(t,"valueOf",{value:function(t){return t!==e?n.apply(this,arguments):r},writable:!0}),r}},{}],316:[function(t,e,r){var n=t("./create-store.js");e.exports=function(){var t=n();return{get:function(e,r){var n=t(e);return n.hasOwnProperty("value")?n.value:r},set:function(e,r){return t(e).value=r,this},has:function(e){return"value"in t(e)},delete:function(e){return delete t(e).value}}}},{"./create-store.js":314}],317:[function(t,e,r){"use strict";var n,i=function(){return function(t,e,r,n,i,a){var o=t[0],s=r[0],l=[0],c=s;n|=0;var u=0,f=s;for(u=0;u=0!=p>=0&&i.push(l[0]+.5+.5*(h+p)/(h-p)),n+=f,++l[0]}}};e.exports=(n={funcName:{funcName:"zeroCrossings"}.funcName},function(t){var e={};return function(r,n,i){var a=r.dtype,o=r.order,s=[a,o.join()].join(),l=e[s];return l||(e[s]=l=t([a,o])),l(r.shape.slice(0),r.data,r.stride,0|r.offset,n,i)}}(i.bind(void 0,n)))},{}],318:[function(t,e,r){"use strict";e.exports=function(t,e){var r=[];return e=+e||0,n(t.hi(t.shape[0]-1),r,e),r};var n=t("./lib/zc-core")},{"./lib/zc-core":317}]},{},[6])(6)}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[27])(27)}));
    +"use strict";var n,i="";e.exports=function(t,e){if("string"!=typeof t)throw new TypeError("expected a string");if(1===e)return t;if(2===e)return t+t;var r=t.length*e;if(n!==t||void 0===n)n=t,i="";else if(i.length>=r)return i.substr(0,r);for(;r>i.length&&e>1;)1&e&&(i+=t),e>>=1,t+=t;return i=(i+=t).substr(0,r)}},{}],278:[function(t,e,r){(function(t){(function(){e.exports=t.performance&&t.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}}).call(this)}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],279:[function(t,e,r){"use strict";e.exports=function(t){for(var e=t.length,r=t[t.length-1],n=e,i=e-2;i>=0;--i){var a=r,o=t[i];(l=o-((r=a+o)-a))&&(t[--n]=r,r=l)}var s=0;for(i=n;i0){if(a<=0)return o;n=i+a}else{if(!(i<0))return o;if(a>=0)return o;n=-(i+a)}var s=33306690738754716e-32*n;return o>=s||o<=-s?o:f(t,e,r)},function(t,e,r,n){var i=t[0]-n[0],a=e[0]-n[0],o=r[0]-n[0],s=t[1]-n[1],l=e[1]-n[1],c=r[1]-n[1],u=t[2]-n[2],f=e[2]-n[2],p=r[2]-n[2],d=a*c,m=o*l,g=o*s,v=i*c,y=i*l,x=a*s,b=u*(d-m)+f*(g-v)+p*(y-x),_=7771561172376103e-31*((Math.abs(d)+Math.abs(m))*Math.abs(u)+(Math.abs(g)+Math.abs(v))*Math.abs(f)+(Math.abs(y)+Math.abs(x))*Math.abs(p));return b>_||-b>_?b:h(t,e,r,n)}];function d(t){var e=p[t.length];return e||(e=p[t.length]=u(t.length)),e.apply(void 0,t)}function m(t,e,r,n,i,a,o){return function(e,r,s,l,c){switch(arguments.length){case 0:case 1:return 0;case 2:return n(e,r);case 3:return i(e,r,s);case 4:return a(e,r,s,l);case 5:return o(e,r,s,l,c)}for(var u=new Array(arguments.length),f=0;f0&&o>0||a<0&&o<0)return!1;var s=n(r,t,e),l=n(i,t,e);if(s>0&&l>0||s<0&&l<0)return!1;if(0===a&&0===o&&0===s&&0===l)return function(t,e,r,n){for(var i=0;i<2;++i){var a=t[i],o=e[i],s=Math.min(a,o),l=Math.max(a,o),c=r[i],u=n[i],f=Math.min(c,u);if(Math.max(c,u)=n?(i=f,(l+=1)=n?(i=f,(l+=1)>1,c=e[2*l+1];if(c===a)return l;a>1,c=e[2*l+1];if(c===a)return l;a>1,c=e[2*l+1];if(c===a)return l;a>1,s=a(t[o],e);s<=0?(0===s&&(i=o),r=o+1):s>0&&(n=o-1)}return i}function u(t,e){for(var r=new Array(t.length),i=0,o=r.length;i=t.length||0!==a(t[g],s)););}return r}function f(t,e){if(e<0)return[];for(var r=[],i=(1<>>u&1&&c.push(i[u]);e.push(c)}return s(e)},r.skeleton=f,r.boundary=function(t){for(var e=[],r=0,n=t.length;r>1:(t>>1)-1}function x(t){for(var e=v(t);;){var r=e,n=2*t+1,i=2*(t+1),a=t;if(n0;){var r=y(t);if(r>=0)if(e0){var t=k[0];return g(0,M-1),M-=1,x(0),t}return-1}function w(t,e){var r=k[t];return c[r]===e?t:(c[r]=-1/0,b(t),_(),c[r]=e,b((M+=1)-1))}function T(t){if(!u[t]){u[t]=!0;var e=s[t],r=l[t];s[r]>=0&&(s[r]=e),l[e]>=0&&(l[e]=r),A[e]>=0&&w(A[e],m(e)),A[r]>=0&&w(A[r],m(r))}}var k=[],A=new Array(a);for(f=0;f>1;f>=0;--f)x(f);for(;;){var S=_();if(S<0||c[S]>r)break;T(S)}var E=[];for(f=0;f=0&&r>=0&&e!==r){var n=A[e],i=A[r];n!==i&&C.push([n,i])}})),i.unique(i.normalize(C)),{positions:E,edges:C}};var n=t("robust-orientation"),i=t("simplicial-complex")},{"robust-orientation":284,"simplicial-complex":295}],298:[function(t,e,r){"use strict";e.exports=function(t,e){var r,a,o,s;if(e[0][0]e[1][0]))return i(e,t);r=e[1],a=e[0]}if(t[0][0]t[1][0]))return-i(t,e);o=t[1],s=t[0]}var l=n(r,a,s),c=n(r,a,o);if(l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;if(l=n(s,o,a),c=n(s,o,r),l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;return a[0]-s[0]};var n=t("robust-orientation");function i(t,e){var r,i,a,o;if(e[0][0]e[1][0])){var s=Math.min(t[0][1],t[1][1]),l=Math.max(t[0][1],t[1][1]),c=Math.min(e[0][1],e[1][1]),u=Math.max(e[0][1],e[1][1]);return lu?s-u:l-u}r=e[1],i=e[0]}t[0][1]0)if(e[0]!==o[1][0])r=t,t=t.right;else{if(l=c(t.right,e))return l;t=t.left}else{if(e[0]!==o[1][0])return t;var l;if(l=c(t.right,e))return l;t=t.left}}return r}function u(t,e,r,n){this.y=t,this.index=e,this.start=r,this.closed=n}function f(t,e,r,n){this.x=t,this.segment=e,this.create=r,this.index=n}s.prototype.castUp=function(t){var e=n.le(this.coordinates,t[0]);if(e<0)return-1;this.slabs[e];var r=c(this.slabs[e],t),i=-1;if(r&&(i=r.value),this.coordinates[e]===t[0]){var s=null;if(r&&(s=r.key),e>0){var u=c(this.slabs[e-1],t);u&&(s?o(u.key,s)>0&&(s=u.key,i=u.value):(i=u.value,s=u.key))}var f=this.horizontal[e];if(f.length>0){var h=n.ge(f,t[1],l);if(h=f.length)return i;p=f[h]}}if(p.start)if(s){var d=a(s[0],s[1],[t[0],p.y]);s[0][0]>s[1][0]&&(d=-d),d>0&&(i=p.index)}else i=p.index;else p.y!==t[1]&&(i=p.index)}}}return i}},{"./lib/order-segments":298,"binary-search-bounds":31,"functional-red-black-tree":69,"robust-orientation":284}],300:[function(t,e,r){"use strict";var n=t("robust-dot-product"),i=t("robust-sum");function a(t,e){var r=i(n(t,e),[e[e.length-1]]);return r[r.length-1]}function o(t,e,r,n){var i=-e/(n-e);i<0?i=0:i>1&&(i=1);for(var a=1-i,o=t.length,s=new Array(o),l=0;l0||i>0&&u<0){var f=o(s,u,l,i);r.push(f),n.push(f.slice())}u<0?n.push(l.slice()):u>0?r.push(l.slice()):(r.push(l.slice()),n.push(l.slice())),i=u}return{positive:r,negative:n}},e.exports.positive=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c>=0&&r.push(s.slice()),n=c}return r},e.exports.negative=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c<=0&&r.push(s.slice()),n=c}return r}},{"robust-dot-product":281,"robust-sum":289}],301:[function(t,e,r){!function(){"use strict";var t={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function e(t){return i(o(t),arguments)}function n(t,r){return e.apply(null,[t].concat(r||[]))}function i(r,n){var i,a,o,s,l,c,u,f,h,p=1,d=r.length,m="";for(a=0;a=0),s.type){case"b":i=parseInt(i,10).toString(2);break;case"c":i=String.fromCharCode(parseInt(i,10));break;case"d":case"i":i=parseInt(i,10);break;case"j":i=JSON.stringify(i,null,s.width?parseInt(s.width):0);break;case"e":i=s.precision?parseFloat(i).toExponential(s.precision):parseFloat(i).toExponential();break;case"f":i=s.precision?parseFloat(i).toFixed(s.precision):parseFloat(i);break;case"g":i=s.precision?String(Number(i.toPrecision(s.precision))):parseFloat(i);break;case"o":i=(parseInt(i,10)>>>0).toString(8);break;case"s":i=String(i),i=s.precision?i.substring(0,s.precision):i;break;case"t":i=String(!!i),i=s.precision?i.substring(0,s.precision):i;break;case"T":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=s.precision?i.substring(0,s.precision):i;break;case"u":i=parseInt(i,10)>>>0;break;case"v":i=i.valueOf(),i=s.precision?i.substring(0,s.precision):i;break;case"x":i=(parseInt(i,10)>>>0).toString(16);break;case"X":i=(parseInt(i,10)>>>0).toString(16).toUpperCase()}t.json.test(s.type)?m+=i:(!t.number.test(s.type)||f&&!s.sign?h="":(h=f?"+":"-",i=i.toString().replace(t.sign,"")),c=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",u=s.width-(h+i).length,l=s.width&&u>0?c.repeat(u):"",m+=s.align?h+i+l:"0"===c?h+l+i:l+h+i)}return m}var a=Object.create(null);function o(e){if(a[e])return a[e];for(var r,n=e,i=[],o=0;n;){if(null!==(r=t.text.exec(n)))i.push(r[0]);else if(null!==(r=t.modulo.exec(n)))i.push("%");else{if(null===(r=t.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(r[2]){o|=1;var s=[],l=r[2],c=[];if(null===(c=t.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(c[1]);""!==(l=l.substring(c[0].length));)if(null!==(c=t.key_access.exec(l)))s.push(c[1]);else{if(null===(c=t.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(c[1])}r[2]=s}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");i.push({placeholder:r[0],param_no:r[1],keys:r[2],sign:r[3],pad_char:r[4],align:r[5],width:r[6],precision:r[7],type:r[8]})}n=n.substring(r[0].length)}return a[e]=i}void 0!==r&&(r.sprintf=e,r.vsprintf=n),"undefined"!=typeof window&&(window.sprintf=e,window.vsprintf=n)}()},{}],302:[function(t,e,r){"use strict";e.exports=function(t,e){if(t.dimension<=0)return{positions:[],cells:[]};if(1===t.dimension)return function(t,e){for(var r=i(t,e),n=r.length,a=new Array(n),o=new Array(n),s=0;sn|0},vertex:function(t,e,r,n,i,a,o,s,l,c,u,f,h){var p=(o<<0)+(s<<1)+(l<<2)+(c<<3)|0;if(0!==p&&15!==p)switch(p){case 0:u.push([t-.5,e-.5]);break;case 1:u.push([t-.25-.25*(n+r-2*h)/(r-n),e-.25-.25*(i+r-2*h)/(r-i)]);break;case 2:u.push([t-.75-.25*(-n-r+2*h)/(n-r),e-.25-.25*(a+n-2*h)/(n-a)]);break;case 3:u.push([t-.5,e-.5-.5*(i+r+a+n-4*h)/(r-i+n-a)]);break;case 4:u.push([t-.25-.25*(a+i-2*h)/(i-a),e-.75-.25*(-i-r+2*h)/(i-r)]);break;case 5:u.push([t-.5-.5*(n+r+a+i-4*h)/(r-n+i-a),e-.5]);break;case 6:u.push([t-.5-.25*(-n-r+a+i)/(n-r+i-a),e-.5-.25*(-i-r+a+n)/(i-r+n-a)]);break;case 7:u.push([t-.75-.25*(a+i-2*h)/(i-a),e-.75-.25*(a+n-2*h)/(n-a)]);break;case 8:u.push([t-.75-.25*(-a-i+2*h)/(a-i),e-.75-.25*(-a-n+2*h)/(a-n)]);break;case 9:u.push([t-.5-.25*(n+r+-a-i)/(r-n+a-i),e-.5-.25*(i+r+-a-n)/(r-i+a-n)]);break;case 10:u.push([t-.5-.5*(-n-r-a-i+4*h)/(n-r+a-i),e-.5]);break;case 11:u.push([t-.25-.25*(-a-i+2*h)/(a-i),e-.75-.25*(i+r-2*h)/(r-i)]);break;case 12:u.push([t-.5,e-.5-.5*(-i-r-a-n+4*h)/(i-r+a-n)]);break;case 13:u.push([t-.75-.25*(n+r-2*h)/(r-n),e-.25-.25*(-a-n+2*h)/(a-n)]);break;case 14:u.push([t-.25-.25*(-n-r+2*h)/(n-r),e-.25-.25*(-i-r+2*h)/(i-r)]);break;case 15:u.push([t-.5,e-.5])}},cell:function(t,e,r,n,i,a,o,s,l){i?s.push([t,e]):s.push([e,t])}});return function(t,e){var r=[],i=[];return n(t,r,i,e),{positions:r,cells:i}}}};var o={}},{"ndarray-extract-contour":251,"zero-crossings":318}],303:[function(t,e,r){(function(r){(function(){"use strict";e.exports=function t(e,r,i){i=i||{};var o=a[e];o||(o=a[e]={" ":{data:new Float32Array(0),shape:.2}});var s=o[r];if(!s)if(r.length<=1||!/\d/.test(r))s=o[r]=function(t){for(var e=t.cells,r=t.positions,n=new Float32Array(6*e.length),i=0,a=0,o=0;o0&&(f+=.02);var p=new Float32Array(u),d=0,m=-.5*f;for(h=0;hMath.max(r,n)?i[2]=1:r>Math.max(e,n)?i[0]=1:i[1]=1;for(var a=0,o=0,l=0;l<3;++l)a+=t[l]*t[l],o+=i[l]*t[l];for(l=0;l<3;++l)i[l]-=o/a*t[l];return s(i,i),i}function h(t,e,r,i,a,o,s,l){this.center=n(r),this.up=n(i),this.right=n(a),this.radius=n([o]),this.angle=n([s,l]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(t,e),this.computedCenter=this.center.curve(0),this.computedUp=this.up.curve(0),this.computedRight=this.right.curve(0),this.computedRadius=this.radius.curve(0),this.computedAngle=this.angle.curve(0),this.computedToward=[0,0,0],this.computedEye=[0,0,0],this.computedMatrix=new Array(16);for(var c=0;c<16;++c)this.computedMatrix[c]=.5;this.recalcMatrix(0)}var p=h.prototype;p.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},p.getDistanceLimits=function(t){var e=this.radius.bounds[0];return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},p.recalcMatrix=function(t){this.center.curve(t),this.up.curve(t),this.right.curve(t),this.radius.curve(t),this.angle.curve(t);for(var e=this.computedUp,r=this.computedRight,n=0,i=0,a=0;a<3;++a)i+=e[a]*r[a],n+=e[a]*e[a];var l=Math.sqrt(n),u=0;for(a=0;a<3;++a)r[a]-=e[a]*i/n,u+=r[a]*r[a],e[a]/=l;var f=Math.sqrt(u);for(a=0;a<3;++a)r[a]/=f;var h=this.computedToward;o(h,e,r),s(h,h);var p=Math.exp(this.computedRadius[0]),d=this.computedAngle[0],m=this.computedAngle[1],g=Math.cos(d),v=Math.sin(d),y=Math.cos(m),x=Math.sin(m),b=this.computedCenter,_=g*y,w=v*y,T=x,k=-g*x,A=-v*x,M=y,S=this.computedEye,E=this.computedMatrix;for(a=0;a<3;++a){var L=_*r[a]+w*h[a]+T*e[a];E[4*a+1]=k*r[a]+A*h[a]+M*e[a],E[4*a+2]=L,E[4*a+3]=0}var C=E[1],P=E[5],I=E[9],O=E[2],z=E[6],D=E[10],R=P*D-I*z,F=I*O-C*D,B=C*z-P*O,N=c(R,F,B);R/=N,F/=N,B/=N,E[0]=R,E[4]=F,E[8]=B;for(a=0;a<3;++a)S[a]=b[a]+E[2+4*a]*p;for(a=0;a<3;++a){u=0;for(var j=0;j<3;++j)u+=E[a+4*j]*S[j];E[12+a]=-u}E[15]=1},p.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r};var d=[0,0,0];p.rotate=function(t,e,r,n){if(this.angle.move(t,e,r),n){this.recalcMatrix(t);var i=this.computedMatrix;d[0]=i[2],d[1]=i[6],d[2]=i[10];for(var o=this.computedUp,s=this.computedRight,l=this.computedToward,c=0;c<3;++c)i[4*c]=o[c],i[4*c+1]=s[c],i[4*c+2]=l[c];a(i,i,n,d);for(c=0;c<3;++c)o[c]=i[4*c],s[c]=i[4*c+1];this.up.set(t,o[0],o[1],o[2]),this.right.set(t,s[0],s[1],s[2])}},p.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=(Math.exp(this.computedRadius[0]),i[1]),o=i[5],s=i[9],l=c(a,o,s);a/=l,o/=l,s/=l;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=c(u-=a*p,f-=o*p,h-=s*p),m=(u/=d)*e+a*r,g=(f/=d)*e+o*r,v=(h/=d)*e+s*r;this.center.move(t,m,g,v);var y=Math.exp(this.computedRadius[0]);y=Math.max(1e-4,y+n),this.radius.set(t,Math.log(y))},p.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},p.setMatrix=function(t,e,r,n){var a=1;"number"==typeof r&&(a=0|r),(a<0||a>3)&&(a=1);var o=(a+2)%3;e||(this.recalcMatrix(t),e=this.computedMatrix);var s=e[a],l=e[a+4],f=e[a+8];if(n){var h=Math.abs(s),p=Math.abs(l),d=Math.abs(f),m=Math.max(h,p,d);h===m?(s=s<0?-1:1,l=f=0):d===m?(f=f<0?-1:1,s=l=0):(l=l<0?-1:1,s=f=0)}else{var g=c(s,l,f);s/=g,l/=g,f/=g}var v,y,x=e[o],b=e[o+4],_=e[o+8],w=x*s+b*l+_*f,T=c(x-=s*w,b-=l*w,_-=f*w),k=l*(_/=T)-f*(b/=T),A=f*(x/=T)-s*_,M=s*b-l*x,S=c(k,A,M);if(k/=S,A/=S,M/=S,this.center.jump(t,q,G,Y),this.radius.idle(t),this.up.jump(t,s,l,f),this.right.jump(t,x,b,_),2===a){var E=e[1],L=e[5],C=e[9],P=E*x+L*b+C*_,I=E*k+L*A+C*M;v=R<0?-Math.PI/2:Math.PI/2,y=Math.atan2(I,P)}else{var O=e[2],z=e[6],D=e[10],R=O*s+z*l+D*f,F=O*x+z*b+D*_,B=O*k+z*A+D*M;v=Math.asin(u(R)),y=Math.atan2(B,F)}this.angle.jump(t,y,v),this.recalcMatrix(t);var N=e[2],j=e[6],U=e[10],V=this.computedMatrix;i(V,e);var H=V[15],q=V[12]/H,G=V[13]/H,Y=V[14]/H,W=Math.exp(this.computedRadius[0]);this.center.jump(t,q-N*W,G-j*W,Y-U*W)},p.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},p.idle=function(t){this.center.idle(t),this.up.idle(t),this.right.idle(t),this.radius.idle(t),this.angle.idle(t)},p.flush=function(t){this.center.flush(t),this.up.flush(t),this.right.flush(t),this.radius.flush(t),this.angle.flush(t)},p.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},p.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||this.computedCenter;var i=(n=n||this.computedUp)[0],a=n[1],o=n[2],s=c(i,a,o);if(!(s<1e-6)){i/=s,a/=s,o/=s;var l=e[0]-r[0],f=e[1]-r[1],h=e[2]-r[2],p=c(l,f,h);if(!(p<1e-6)){l/=p,f/=p,h/=p;var d=this.computedRight,m=d[0],g=d[1],v=d[2],y=i*m+a*g+o*v,x=c(m-=y*i,g-=y*a,v-=y*o);if(!(x<.01&&(x=c(m=a*h-o*f,g=o*l-i*h,v=i*f-a*l))<1e-6)){m/=x,g/=x,v/=x,this.up.set(t,i,a,o),this.right.set(t,m,g,v),this.center.set(t,r[0],r[1],r[2]),this.radius.set(t,Math.log(p));var b=a*v-o*g,_=o*m-i*v,w=i*g-a*m,T=c(b,_,w),k=i*l+a*f+o*h,A=m*l+g*f+v*h,M=(b/=T)*l+(_/=T)*f+(w/=T)*h,S=Math.asin(u(k)),E=Math.atan2(M,A),L=this.angle._state,C=L[L.length-1],P=L[L.length-2];C%=2*Math.PI;var I=Math.abs(C+2*Math.PI-E),O=Math.abs(C-E),z=Math.abs(C-2*Math.PI-E);I0?r.pop():new ArrayBuffer(t)}function d(t){return new Uint8Array(p(t),0,t)}function m(t){return new Uint16Array(p(2*t),0,t)}function g(t){return new Uint32Array(p(4*t),0,t)}function v(t){return new Int8Array(p(t),0,t)}function y(t){return new Int16Array(p(2*t),0,t)}function x(t){return new Int32Array(p(4*t),0,t)}function b(t){return new Float32Array(p(4*t),0,t)}function _(t){return new Float64Array(p(8*t),0,t)}function w(t){return o?new Uint8ClampedArray(p(t),0,t):d(t)}function T(t){return s?new BigUint64Array(p(8*t),0,t):null}function k(t){return l?new BigInt64Array(p(8*t),0,t):null}function A(t){return new DataView(p(t),0,t)}function M(t){t=n.nextPow2(t);var e=n.log2(t),r=f[e];return r.length>0?r.pop():new a(t)}r.free=function(t){if(a.isBuffer(t))f[n.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|n.log2(e);u[r].push(t)}},r.freeUint8=r.freeUint16=r.freeUint32=r.freeBigUint64=r.freeInt8=r.freeInt16=r.freeInt32=r.freeBigInt64=r.freeFloat32=r.freeFloat=r.freeFloat64=r.freeDouble=r.freeUint8Clamped=r.freeDataView=function(t){h(t.buffer)},r.freeArrayBuffer=h,r.freeBuffer=function(t){f[n.log2(t.length)].push(t)},r.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return p(t);switch(e){case"uint8":return d(t);case"uint16":return m(t);case"uint32":return g(t);case"int8":return v(t);case"int16":return y(t);case"int32":return x(t);case"float":case"float32":return b(t);case"double":case"float64":return _(t);case"uint8_clamped":return w(t);case"bigint64":return k(t);case"biguint64":return T(t);case"buffer":return M(t);case"data":case"dataview":return A(t);default:return null}return null},r.mallocArrayBuffer=p,r.mallocUint8=d,r.mallocUint16=m,r.mallocUint32=g,r.mallocInt8=v,r.mallocInt16=y,r.mallocInt32=x,r.mallocFloat32=r.mallocFloat=b,r.mallocFloat64=r.mallocDouble=_,r.mallocUint8Clamped=w,r.mallocBigUint64=T,r.mallocBigInt64=k,r.mallocDataView=A,r.mallocBuffer=M,r.clearCache=function(){for(var t=0;t<32;++t)c.UINT8[t].length=0,c.UINT16[t].length=0,c.UINT32[t].length=0,c.INT8[t].length=0,c.INT16[t].length=0,c.INT32[t].length=0,c.FLOAT[t].length=0,c.DOUBLE[t].length=0,c.BIGUINT64[t].length=0,c.BIGINT64[t].length=0,c.UINT8C[t].length=0,u[t].length=0,f[t].length=0}}).call(this)}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"bit-twiddle":32,buffer:3,dup:65}],309:[function(t,e,r){"use strict";function n(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e0&&(a=n.size),n.lineSpacing&&n.lineSpacing>0&&(o=n.lineSpacing),n.styletags&&n.styletags.breaklines&&(s.breaklines=!!n.styletags.breaklines),n.styletags&&n.styletags.bolds&&(s.bolds=!!n.styletags.bolds),n.styletags&&n.styletags.italics&&(s.italics=!!n.styletags.italics),n.styletags&&n.styletags.subscripts&&(s.subscripts=!!n.styletags.subscripts),n.styletags&&n.styletags.superscripts&&(s.superscripts=!!n.styletags.superscripts));return r.font=[n.fontStyle,n.fontVariant,n.fontWeight,a+"px",n.font].filter((function(t){return t})).join(" "),r.textAlign="start",r.textBaseline="alphabetic",r.direction="ltr",h(function(t,e,r,n,a,o){r=r.replace(/\n/g,""),r=!0===o.breaklines?r.replace(/\/g,"\n"):r.replace(/\/g," ");var s="",l=[];for(p=0;p-1?parseInt(t[1+i]):0,l=a>-1?parseInt(r[1+a]):0;s!==l&&(n=n.replace(S(),"?px "),g*=Math.pow(.75,l-s),n=n.replace("?px ",S())),m+=.25*x*(l-s)}if(!0===o.superscripts){var c=t.indexOf("+"),u=r.indexOf("+"),f=c>-1?parseInt(t[1+c]):0,h=u>-1?parseInt(r[1+u]):0;f!==h&&(n=n.replace(S(),"?px "),g*=Math.pow(.75,h-f),n=n.replace("?px ",S())),m-=.25*x*(h-f)}if(!0===o.bolds){var p=t.indexOf("b|")>-1,d=r.indexOf("b|")>-1;!p&&d&&(n=v?n.replace("italic ","italic bold "):"bold "+n),p&&!d&&(n=n.replace("bold ",""))}if(!0===o.italics){var v=t.indexOf("i|")>-1,y=r.indexOf("i|")>-1;!v&&y&&(n="italic "+n),v&&!y&&(n=n.replace("italic ",""))}e.font=n}for(h=0;h",a="",o=i.length,s=a.length,l="+"===e[0]||"-"===e[0],c=0,u=-s;c>-1&&-1!==(c=r.indexOf(i,c))&&-1!==(u=r.indexOf(a,c+o))&&!(u<=c);){for(var f=c;f=u)n[f]=null,r=r.substr(0,f)+" "+r.substr(f+1);else if(null!==n[f]){var h=n[f].indexOf(e[0]);-1===h?n[f]+=e:l&&(n[f]=n[f].substr(0,h+1)+(1+parseInt(n[f][h+1]))+n[f].substr(h+2))}var p=c+o,d=r.substr(p,u-p).indexOf(i);c=-1!==d?d:u+s}return n}function u(t,e){var r=n(t,128);return e?a(r.cells,r.positions,.25):{edges:r.cells,positions:r.positions}}function f(t,e,r,n){var i=u(t,n),a=function(t,e,r){for(var n=e.textAlign||"start",i=e.textBaseline||"alphabetic",a=[1<<30,1<<30],o=[0,0],s=t.length,l=0;l=0?e[a]:i}))},has___:{value:y((function(e){var n=v(e);return n?r in n:t.indexOf(e)>=0}))},set___:{value:y((function(n,i){var a,o=v(n);return o?o[r]=i:(a=t.indexOf(n))>=0?e[a]=i:(a=t.length,e[a]=i,t[a]=n),this}))},delete___:{value:y((function(n){var i,a,o=v(n);return o?r in o&&delete o[r]:!((i=t.indexOf(n))<0)&&(a=t.length-1,t[i]=void 0,e[i]=e[a],t[i]=t[a],t.length=a,e.length=a,!0)}))}})};d.prototype=Object.create(Object.prototype,{get:{value:function(t,e){return this.get___(t,e)},writable:!0,configurable:!0},has:{value:function(t){return this.has___(t)},writable:!0,configurable:!0},set:{value:function(t,e){return this.set___(t,e)},writable:!0,configurable:!0},delete:{value:function(t){return this.delete___(t)},writable:!0,configurable:!0}}),"function"==typeof r?function(){function n(){this instanceof d||x();var e,n=new r,i=void 0,a=!1;return e=t?function(t,e){return n.set(t,e),n.has(t)||(i||(i=new d),i.set(t,e)),this}:function(t,e){if(a)try{n.set(t,e)}catch(r){i||(i=new d),i.set___(t,e)}else n.set(t,e);return this},Object.create(d.prototype,{get___:{value:y((function(t,e){return i?n.has(t)?n.get(t):i.get___(t,e):n.get(t,e)}))},has___:{value:y((function(t){return n.has(t)||!!i&&i.has___(t)}))},set___:{value:y(e)},delete___:{value:y((function(t){var e=!!n.delete(t);return i&&i.delete___(t)||e}))},permitHostObjects___:{value:y((function(t){if(t!==m)throw new Error("bogus call to permitHostObjects___");a=!0}))}})}t&&"undefined"!=typeof Proxy&&(Proxy=void 0),n.prototype=d.prototype,e.exports=n,Object.defineProperty(WeakMap.prototype,"constructor",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():("undefined"!=typeof Proxy&&(Proxy=void 0),e.exports=d)}function m(t){t.permitHostObjects___&&t.permitHostObjects___(m)}function g(t){return!("weakmap:"==t.substr(0,"weakmap:".length)&&"___"===t.substr(t.length-3))}function v(t){if(t!==Object(t))throw new TypeError("Not an object: "+t);var e=t[l];if(e&&e.key===t)return e;if(s(t)){e={key:t};try{return o(t,l,{value:e,writable:!1,enumerable:!1,configurable:!1}),e}catch(t){return}}}function y(t){return t.prototype=null,Object.freeze(t)}function x(){h||"undefined"==typeof console||(h=!0,console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."))}}()},{}],314:[function(t,e,r){var n=t("./hidden-store.js");e.exports=function(){var t={};return function(e){if(("object"!=typeof e||null===e)&&"function"!=typeof e)throw new Error("Weakmap-shim: Key must be object");var r=e.valueOf(t);return r&&r.identity===t?r:n(e,t)}}},{"./hidden-store.js":315}],315:[function(t,e,r){e.exports=function(t,e){var r={identity:e},n=t.valueOf;return Object.defineProperty(t,"valueOf",{value:function(t){return t!==e?n.apply(this,arguments):r},writable:!0}),r}},{}],316:[function(t,e,r){var n=t("./create-store.js");e.exports=function(){var t=n();return{get:function(e,r){var n=t(e);return n.hasOwnProperty("value")?n.value:r},set:function(e,r){return t(e).value=r,this},has:function(e){return"value"in t(e)},delete:function(e){return delete t(e).value}}}},{"./create-store.js":314}],317:[function(t,e,r){"use strict";var n,i=function(){return function(t,e,r,n,i,a){var o=t[0],s=r[0],l=[0],c=s;n|=0;var u=0,f=s;for(u=0;u=0!=p>=0&&i.push(l[0]+.5+.5*(h+p)/(h-p)),n+=f,++l[0]}}};e.exports=(n={funcName:{funcName:"zeroCrossings"}.funcName},function(t){var e={};return function(r,n,i){var a=r.dtype,o=r.order,s=[a,o.join()].join(),l=e[s];return l||(e[s]=l=t([a,o])),l(r.shape.slice(0),r.data,r.stride,0|r.offset,n,i)}}(i.bind(void 0,n)))},{}],318:[function(t,e,r){"use strict";e.exports=function(t,e){var r=[];return e=+e||0,n(t.hi(t.shape[0]-1),r,e),r};var n=t("./lib/zc-core")},{"./lib/zc-core":317}]},{},[6])(6)}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[27])(27)}));
    \ No newline at end of file diff --git a/docs/py-modindex.html b/docs/py-modindex.html index c67b61e..f948841 100644 --- a/docs/py-modindex.html +++ b/docs/py-modindex.html @@ -31,7 +31,7 @@ rolling-pin
    - 0.6.4 + 0.6.5
    diff --git a/docs/raw_metrics.html b/docs/raw_metrics.html index d603804..4f1baf8 100644 --- a/docs/raw_metrics.html +++ b/docs/raw_metrics.html @@ -84,45 +84,45 @@ 6 /home/ubuntu/rolling-pin/python/rolling_pin/conform_config.py 14 - 64 - 16 - 31 + 66 + 18 + 33 19 2 - 29 + 31 7 /home/ubuntu/rolling-pin/python/rolling_pin/conform_config_test.py 17 - 100 + 106 6 56 0 6 - 77 + 83 8 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl.py 38 - 281 + 283 19 121 87 17 - 139 + 141 9 /home/ubuntu/rolling-pin/python/rolling_pin/conform_etl_test.py - 51 - 321 + 54 + 343 16 - 215 + 228 0 16 - 254 + 273 10 @@ -172,23 +172,23 @@ 14 /home/ubuntu/rolling-pin/python/rolling_pin/tools.py 88 - 480 - 39 - 201 - 153 + 491 + 44 + 203 + 156 23 - 216 + 224 15 /home/ubuntu/rolling-pin/python/rolling_pin/tools_test.py - 70 - 560 - 23 - 301 + 73 + 571 + 24 + 308 0 - 23 - 467 + 24 + 474 \ No newline at end of file diff --git a/docs/rolling_pin.html b/docs/rolling_pin.html index d467b77..20d1483 100644 --- a/docs/rolling_pin.html +++ b/docs/rolling_pin.html @@ -31,7 +31,7 @@ rolling-pin
    - 0.6.4 + 0.6.5
    @@ -587,8 +587,8 @@
    line_rules
    -

    A list of rules for peforming line copies on -files belonging to a given group. Default: [].

    +

    A list of rules for peforming line copies and +substitutions on files belonging to a given group. Default: [].

    Type

    Rules

    @@ -651,6 +651,16 @@ include: schematics.types.base.StringType = <StringType() instance on LineRule as 'include'>
    +
    +
    +regex: schematics.types.base.StringType = <StringType() instance on LineRule as 'regex'>
    +
    + +
    +
    +replace: schematics.types.base.StringType = <StringType() instance on LineRule as 'replace'>
    +
    +
    @@ -1587,7 +1597,7 @@
    -rolling_pin.tools.filter_text(text: str, include_regex: Optional[str] = None, exclude_regex: Optional[str] = None) str[source]
    +rolling_pin.tools.filter_text(text: str, include_regex: Optional[str] = None, exclude_regex: Optional[str] = None, replace_regex: Optional[str] = None, replace_value: str = '') str[source]

    Filter given text by applying regular expressions to each line.

    Parameters
    @@ -1597,6 +1607,9 @@ Default: None.

  • exclude_regex (str, optional) – Remove lines that match given regex. Default: None.

  • +
  • replace_regex (str, optional) – Substitutes regex matches in lines with +replace_value. Default: None.

  • +
  • replace_value (str, optional) – Regex substitution value. Default: ‘’.

  • Raises
    diff --git a/docs/search.html b/docs/search.html index b8d8aae..1c0eafc 100644 --- a/docs/search.html +++ b/docs/search.html @@ -31,7 +31,7 @@ rolling-pin
    - 0.6.4 + 0.6.5
    diff --git a/docs/searchindex.js b/docs/searchindex.js index cf4f6d3..2ae7aef 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["cli","index","intro","modules","rolling_pin"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["cli.rst","index.rst","intro.rst","modules.rst","rolling_pin.rst"],objects:{"":[[0,0,0,"-","cli"]],"rolling_pin.app":[[4,2,1,"","get_svg"],[4,2,1,"","index"],[4,2,1,"","to_svg"]],"rolling_pin.blob_etl":[[4,3,1,"","BlobETL"]],"rolling_pin.blob_etl.BlobETL":[[4,4,1,"","__dict__"],[4,5,1,"","__init__"],[4,4,1,"","__module__"],[4,4,1,"","__weakref__"],[4,5,1,"","delete"],[4,5,1,"","filter"],[4,5,1,"","query"],[4,5,1,"","set"],[4,5,1,"","set_field"],[4,5,1,"","to_dataframe"],[4,5,1,"","to_dict"],[4,5,1,"","to_dot_graph"],[4,5,1,"","to_flat_dict"],[4,5,1,"","to_html"],[4,5,1,"","to_networkx_graph"],[4,5,1,"","to_prototype"],[4,5,1,"","to_records"],[4,5,1,"","update"],[4,5,1,"","write"]],"rolling_pin.conform_config":[[4,3,1,"","ConformConfig"],[4,2,1,"","is_dir"]],"rolling_pin.conform_config.ConformConfig":[[4,3,1,"","GroupRule"],[4,3,1,"","LineRule"],[4,3,1,"","RenameRule"],[4,3,1,"","SourceRule"],[4,4,1,"","__module__"],[4,4,1,"","_schema"],[4,4,1,"id0","group_rules"],[4,4,1,"id1","line_rules"],[4,4,1,"id2","rename_rules"],[4,4,1,"id3","source_rules"]],"rolling_pin.conform_config.ConformConfig.GroupRule":[[4,4,1,"","__module__"],[4,4,1,"","_schema"],[4,4,1,"","name"],[4,4,1,"","regex"]],"rolling_pin.conform_config.ConformConfig.LineRule":[[4,4,1,"","__module__"],[4,4,1,"","_schema"],[4,4,1,"","exclude"],[4,4,1,"","group"],[4,4,1,"","include"]],"rolling_pin.conform_config.ConformConfig.RenameRule":[[4,4,1,"","__module__"],[4,4,1,"","_schema"],[4,4,1,"","regex"],[4,4,1,"","replace"]],"rolling_pin.conform_config.ConformConfig.SourceRule":[[4,4,1,"","__module__"],[4,4,1,"","_schema"],[4,4,1,"","exclude"],[4,4,1,"","include"],[4,4,1,"","path"]],"rolling_pin.conform_etl":[[4,3,1,"","ConformETL"]],"rolling_pin.conform_etl.ConformETL":[[4,4,1,"","__dict__"],[4,5,1,"","__init__"],[4,4,1,"","__module__"],[4,5,1,"","__repr__"],[4,4,1,"","__weakref__"],[4,5,1,"","_get_data"],[4,5,1,"","conform"],[4,5,1,"","from_yaml"],[4,6,1,"","groups"],[4,5,1,"","to_blob"],[4,5,1,"","to_dataframe"],[4,5,1,"","to_html"]],"rolling_pin.radon_etl":[[4,3,1,"","RadonETL"]],"rolling_pin.radon_etl.RadonETL":[[4,4,1,"","__dict__"],[4,5,1,"","__init__"],[4,4,1,"","__module__"],[4,4,1,"","__weakref__"],[4,5,1,"","_get_cyclomatic_complexity_dataframe"],[4,5,1,"","_get_halstead_dataframe"],[4,5,1,"","_get_maintainability_index_dataframe"],[4,5,1,"","_get_radon_data"],[4,5,1,"","_get_radon_report"],[4,5,1,"","_get_raw_metrics_dataframe"],[4,6,1,"","cyclomatic_complexity_metrics"],[4,6,1,"","data"],[4,6,1,"","halstead_metrics"],[4,6,1,"","maintainability_index"],[4,6,1,"","raw_metrics"],[4,6,1,"","report"],[4,5,1,"","write_plots"],[4,5,1,"","write_tables"]],"rolling_pin.repo_etl":[[4,3,1,"","RepoETL"],[4,2,1,"","write_repo_architecture"],[4,2,1,"","write_repo_plots_and_tables"]],"rolling_pin.repo_etl.RepoETL":[[4,4,1,"","__dict__"],[4,5,1,"","__init__"],[4,4,1,"","__module__"],[4,4,1,"","__weakref__"],[4,5,1,"","_anneal_coordinate"],[4,5,1,"","_calculate_coordinates"],[4,5,1,"","_center_coordinate"],[4,5,1,"","_get_data"],[4,5,1,"","_get_imports"],[4,5,1,"","_to_networkx_graph"],[4,5,1,"","to_dataframe"],[4,5,1,"","to_dot_graph"],[4,5,1,"","to_html"],[4,5,1,"","to_networkx_graph"],[4,5,1,"","write"]],"rolling_pin.tools":[[4,1,1,"","LOGGER"],[4,2,1,"","copy_file"],[4,2,1,"","directory_to_dataframe"],[4,2,1,"","dot_to_html"],[4,2,1,"","filter_text"],[4,2,1,"","flatten"],[4,2,1,"","get_parent_fields"],[4,2,1,"","is_dictlike"],[4,2,1,"","is_iterable"],[4,2,1,"","is_listlike"],[4,2,1,"","list_all_files"],[4,2,1,"","move_file"],[4,2,1,"","nest"],[4,2,1,"","read_text"],[4,2,1,"","unembed"],[4,2,1,"","write_dot_graph"],[4,2,1,"","write_text"]],cli:[[0,1,1,"","PORT"],[0,2,1,"","app_command"],[0,2,1,"","build_dev_command"],[0,2,1,"","build_prod_command"],[0,2,1,"","container_id_command"],[0,2,1,"","coverage"],[0,2,1,"","coverage_command"],[0,2,1,"","destroy_dev_command"],[0,2,1,"","destroy_prod_command"],[0,2,1,"","docker_exec"],[0,2,1,"","docs_command"],[0,2,1,"","enter_repo"],[0,2,1,"","exit_repo"],[0,2,1,"","fast_test_command"],[0,2,1,"","full_docs_command"],[0,2,1,"","get_illegal_mode_command"],[0,2,1,"","get_info"],[0,2,1,"","image_id_command"],[0,2,1,"","lab_command"],[0,2,1,"","line"],[0,2,1,"","lint_command"],[0,2,1,"","main"],[0,2,1,"","make_docs_dir"],[0,2,1,"","package_command"],[0,2,1,"","package_repo"],[0,2,1,"","prod_command"],[0,2,1,"","publish_command"],[0,2,1,"","push_command"],[0,2,1,"","python_command"],[0,2,1,"","remove_command"],[0,2,1,"","remove_container"],[0,2,1,"","requirements_command"],[0,2,1,"","resolve"],[0,2,1,"","restart_command"],[0,2,1,"","start"],[0,2,1,"","start_command"],[0,2,1,"","state_command"],[0,2,1,"","stop"],[0,2,1,"","stop_command"],[0,2,1,"","test_command"],[0,2,1,"","tmp_repo"],[0,2,1,"","tox_command"],[0,2,1,"","tox_repo"],[0,2,1,"","version_up_command"],[0,2,1,"","version_variable"],[0,2,1,"","zsh_command"],[0,2,1,"","zsh_complete_command"],[0,2,1,"","zsh_root_command"]],rolling_pin:[[4,0,0,"-","app"],[4,0,0,"-","blob_etl"],[4,0,0,"-","conform_config"],[4,0,0,"-","conform_etl"],[4,0,0,"-","radon_etl"],[4,0,0,"-","repo_etl"],[4,0,0,"-","tools"]]},objnames:{"0":["py","module","Python module"],"1":["py","data","Python data"],"2":["py","function","Python function"],"3":["py","class","Python class"],"4":["py","attribute","Python attribute"],"5":["py","method","Python method"],"6":["py","property","Python property"]},objtypes:{"0":"py:module","1":"py:data","2":"py:function","3":"py:class","4":"py:attribute","5":"py:method","6":"py:property"},terms:{"0":4,"1":4,"10":4,"1st":4,"2":4,"242424":4,"343434":4,"4":[2,4],"5180":2,"80":2,"8080":0,"9":4,"boolean":4,"case":4,"class":[2,4],"default":[0,4],"do":4,"final":4,"function":[0,4],"import":4,"int":4,"new":4,"return":[0,4],"static":4,"true":4,A:[0,2,4],For:[1,4],If:[2,4],It:2,On:2,The:2,Then:[0,4],__:2,__annotations__:4,__dict__:4,__doc__:4,__init__:4,__module__:4,__repr__:4,__weakref__:4,_anneal_coordin:4,_calculate_coordin:4,_center_coordin:4,_data:4,_get_cyclomatic_complexity_datafram:4,_get_data:4,_get_halstead_datafram:4,_get_import:4,_get_maintainability_index_datafram:4,_get_radon_data:4,_get_radon_report:4,_get_raw_metrics_datafram:4,_line_rul:4,_root:4,_schema:4,_separ:4,_test:4,_to_networkx_graph:4,a0d17b:4,absolut:4,accord:4,after:4,aggreg:4,agnost:0,align:4,all:[1,4],alloc:2,along:4,an:0,analysi:0,angl:4,ani:4,anneal:4,anneal_axi:4,anneal_column:4,app:[0,1,3],app_command:0,app_data:4,appli:4,ar:4,architectur:[0,2,4],arg:0,argument:[0,4],as_png:4,assertionerror:4,attribut:4,axi:4,b6ecf3:4,back:4,background:4,base:4,basic:4,belong:4,bin:2,blob:[2,4],blob_etl:[1,3],blobetl:4,block:0,bool:4,bottom:4,bt:4,build:0,build_dev_command:0,build_prod_command:0,calcul:4,call:[0,4],callabl:4,can:4,cd:2,center:4,center_axi:4,chmod:2,circo:4,classmethod:4,cli:[1,3],clone:2,code:[0,1,2],color:4,color_schem:4,column:4,com:2,command:[0,2],commmand:0,complet:0,complex:[1,4],compound:4,configur:4,conform:4,conform_color_schem:4,conform_config:[1,3],conform_etl:[1,3],conformconfig:4,conformetl:4,connect:4,consid:4,constant:4,construct:4,contain:[0,4],container_id_command:0,contruct:4,conveni:[0,4],convert:4,coordin:4,copi:4,copy_fil:4,copy_lin:[],core:4,counter:4,coverag:[0,1],coverage_command:0,creat:[0,4],current:2,cyan:4,cyclomat:[1,4],cyclomatic_complexity_metr:4,data:[2,4],dataerror:4,datafram:4,de958:4,deepli:0,defin:4,delet:4,demo:2,depend:[0,2,4],deploi:0,deprec:4,deserialize_map:4,destroi:0,destroy_dev_command:0,destroy_prod_command:0,determin:4,dev:0,develop:[0,1],diagram:0,dick:4,dict:4,dictionari:4,differ:[0,4],digraph:4,dirct:4,direct:4,directi:4,directori:[0,4],directory_to_datafram:4,dirpath:4,displai:4,doc:0,docker:[0,1],docker_down:[],docker_exec:0,dockerhub:0,docs_command:0,document:[0,2],doe:4,dot:4,dot_to_html:4,ds_store:4,dynam:2,each:4,edg:4,edge_librari:4,edge_modul:4,edge_subpackag:4,edge_valu:4,edit:4,embed:4,embed_typ:4,end:4,endpoint:4,enforceerror:4,ensur:2,enter:0,enter_repo:0,etl:[2,4],exampl:4,exclud:4,exclude_regex:4,exec:0,exist:4,exit_repo:0,express:4,extens:4,extract:4,fals:4,fast_test_command:0,fdp:4,few:2,field:4,field_sett:4,file:4,filenam:4,filenotfounderror:4,filepath:4,filter:4,filter_text:4,find:2,first:4,flask:4,flat:4,flat_dict:4,flatten:4,form:4,format:[0,4],found:4,four:4,frame:4,from:[0,4],from_yaml:4,frozen_requir:0,full:[0,4],full_docs_command:0,fulllpath:4,fullpath:4,gb:2,gener:[0,2,4],get:[0,4],get_illegal_mode_command:0,get_info:0,get_parent_field:4,get_svg:4,git:2,github:[2,4],give:[],given:[0,4],graph:[2,4],group:4,group_bi:4,group_rul:4,grouprul:4,ha:[2,4],halstead:[1,4],halstead_metr:4,hand:4,have:4,held:4,help:2,html:4,http:2,id:0,ignore_cas:4,ignore_casd:4,illeg:0,imag:[0,4],image_id_command:0,includ:4,include_regex:4,index:[1,4],inform:4,init:4,inlin:4,insid:0,instal:[0,1],instanc:4,instead:4,integr:0,intern:4,interpret:0,invalid:4,io:2,ipynb:2,ipython:4,is_dictlik:4,is_dir:4,is_iter:4,is_listlik:4,item:4,iter:4,jane:4,json:[2,4],jupyt:[0,2,4],k:4,keep:4,kei:4,key_sett:4,keyword:4,kwarg:4,lab:[0,4],lab_command:0,lambda:4,last:4,layout:4,lazi:4,least:2,left:4,level:4,librari:[2,4],like:4,line:[0,2,4],line_rul:4,linerul:4,lint:0,lint_command:0,list:[0,4],list_:4,list_all_fil:4,listtyp:4,local:4,logger:4,look:2,lr:4,machin:2,maco:2,main:[0,2],maintain:[1,4],maintainability_index:4,make_docs_dir:0,mappingproxi:4,mark:0,master:2,match:4,mean:4,memori:2,method:4,metric:[0,2,4],minut:2,mock:4,mock_:4,mode:0,model:4,modeltyp:4,modul:[1,4],more:[2,4],move:4,move_fil:4,n:4,name:[2,4],neato:4,need:4,nest:4,networkx:4,newlin:4,node:4,node_font:4,node_library_font:4,node_module_font:4,node_nam:4,node_subpackage_font:4,node_typ:4,node_valu:4,node_value_font:4,non:4,none:[0,4],notebook:2,number:4,object:4,one:4,optim:4,option:[0,4],order:4,orient:4,origin:[0,4],orthogonal_edg:4,other:4,output:4,overlap:4,packag:0,package_command:0,package_repo:0,page:[1,2],panda:4,paramet:[0,4],parent:4,pars:[0,4],partial:[0,4],patch_model:4,patch_schema:4,path:4,pathlib:4,pattern:4,pd:4,peform:4,per:4,pin:4,pin_axi:4,pip:[0,2],plot:[0,1,2,4],plot_path:4,png:4,port:0,posit:4,predic:4,print:0,prod:[0,2],prod_command:0,properti:4,prototyp:4,prototype_demo:2,provid:0,publish:[0,2],publish_command:0,pull:2,push:0,push_command:0,py:4,pydot:4,python:[0,4],python_command:0,queri:4,radon:[2,4],radon_etl:[1,3],radonetl:[2,4],rais:4,raw:[1,4],raw_data:4,raw_metr:4,read:4,read_text:4,record:4,rectifi:4,recurs:4,recus:4,red:4,refer:4,regener:0,regex:4,regular:4,remov:[0,4],remove_command:0,remove_contain:0,renam:4,rename_rul:4,renamerul:4,render:4,replac:4,repo:[0,4],repo_etl:[1,3],repoetl:[2,4],report:[0,1,4],repositori:[0,2,4],repres:4,represent:4,requir:4,requirements_command:0,resolv:0,respons:4,restart:0,restart_command:0,retrun:4,right:4,rl:4,rm:2,rolling_pin:4,root:[0,4],row:4,rule:4,run:[0,2],s:[0,2,4],schema:4,schemat:4,scheme:4,search:[1,4],searchabl:4,section:2,self:4,sep:0,separ:[0,4],seri:0,servic:2,session:0,set:[0,4],set_field:4,sfdp:4,shell:4,should:[2,4],shutdown:0,singl:[0,4],slow:0,smith:4,so:4,sort:4,sourc:[0,2,4],source_rul:4,sourcerul:4,split:4,start:[0,2],start_command:0,startifi:4,state:0,state_command:0,statement:4,staticmethod:4,stdout:0,stop:0,stop_command:0,store:4,str:[0,4],strict:4,string:4,stringtyp:4,structur:[0,4],style:4,subpackag:4,substr:0,suppli:4,support:4,svg:4,tabl:4,table_dir:4,take:2,target:4,target_dir:4,tb:4,temporari:0,test:[0,4],test_:4,test_command:0,text:[0,4],thei:4,them:4,thenewflesh:2,thi:[0,4],time:4,tmp:0,tmp_repo:0,to_blob:4,to_datafram:4,to_dict:4,to_dot_graph:4,to_flat_dict:4,to_html:4,to_networkx_graph:4,to_prototyp:4,to_record:4,to_svg:4,tobe:4,tom:4,tool:[1,2,3],top:4,tox:0,tox_command:0,tox_repo:0,trusted_data:4,tupl:0,twopi:4,txt:0,type:[0,4],under:2,unemb:4,union:4,univers:4,up:2,updat:4,us:[2,4],user:4,util:[1,3],v:4,valid:4,validationerror:4,valu:[0,4],value_sett:4,valueerror:4,variabl:0,version:[0,2],version_up_command:0,version_vari:0,visual:2,walk:4,warn:4,weak:4,whether:4,which:4,window:2,within:4,work:2,wrapper:4,write:4,write_dot_graph:4,write_plot:4,write_repo_architectur:4,write_repo_plots_and_t:4,write_t:4,write_text:4,written:[0,4],x:[2,4],y:4,yaml:4,yet:0,yield:4,yml:4,you:2,zsh:0,zsh_command:0,zsh_complete_command:0,zsh_root_command:0},titles:["cli","Welcome to rolling-pin\u2019 documentation!","Rolling-Pin","<no title>","app"],titleterms:{For:2,api:1,app:4,architectur:1,blob_etl:4,cli:0,conform_config:4,conform_etl:4,develop:2,docker:2,document:1,indic:1,instal:2,metric:1,pin:[1,2],python:[1,2],radon_etl:4,repo_etl:4,roll:[1,2],tabl:1,tool:4,util:4,welcom:1}}) \ No newline at end of file +Search.setIndex({docnames:["cli","index","intro","modules","rolling_pin"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["cli.rst","index.rst","intro.rst","modules.rst","rolling_pin.rst"],objects:{"":[[0,0,0,"-","cli"]],"rolling_pin.app":[[4,2,1,"","get_svg"],[4,2,1,"","index"],[4,2,1,"","to_svg"]],"rolling_pin.blob_etl":[[4,3,1,"","BlobETL"]],"rolling_pin.blob_etl.BlobETL":[[4,4,1,"","__dict__"],[4,5,1,"","__init__"],[4,4,1,"","__module__"],[4,4,1,"","__weakref__"],[4,5,1,"","delete"],[4,5,1,"","filter"],[4,5,1,"","query"],[4,5,1,"","set"],[4,5,1,"","set_field"],[4,5,1,"","to_dataframe"],[4,5,1,"","to_dict"],[4,5,1,"","to_dot_graph"],[4,5,1,"","to_flat_dict"],[4,5,1,"","to_html"],[4,5,1,"","to_networkx_graph"],[4,5,1,"","to_prototype"],[4,5,1,"","to_records"],[4,5,1,"","update"],[4,5,1,"","write"]],"rolling_pin.conform_config":[[4,3,1,"","ConformConfig"],[4,2,1,"","is_dir"]],"rolling_pin.conform_config.ConformConfig":[[4,3,1,"","GroupRule"],[4,3,1,"","LineRule"],[4,3,1,"","RenameRule"],[4,3,1,"","SourceRule"],[4,4,1,"","__module__"],[4,4,1,"","_schema"],[4,4,1,"id0","group_rules"],[4,4,1,"id1","line_rules"],[4,4,1,"id2","rename_rules"],[4,4,1,"id3","source_rules"]],"rolling_pin.conform_config.ConformConfig.GroupRule":[[4,4,1,"","__module__"],[4,4,1,"","_schema"],[4,4,1,"","name"],[4,4,1,"","regex"]],"rolling_pin.conform_config.ConformConfig.LineRule":[[4,4,1,"","__module__"],[4,4,1,"","_schema"],[4,4,1,"","exclude"],[4,4,1,"","group"],[4,4,1,"","include"],[4,4,1,"","regex"],[4,4,1,"","replace"]],"rolling_pin.conform_config.ConformConfig.RenameRule":[[4,4,1,"","__module__"],[4,4,1,"","_schema"],[4,4,1,"","regex"],[4,4,1,"","replace"]],"rolling_pin.conform_config.ConformConfig.SourceRule":[[4,4,1,"","__module__"],[4,4,1,"","_schema"],[4,4,1,"","exclude"],[4,4,1,"","include"],[4,4,1,"","path"]],"rolling_pin.conform_etl":[[4,3,1,"","ConformETL"]],"rolling_pin.conform_etl.ConformETL":[[4,4,1,"","__dict__"],[4,5,1,"","__init__"],[4,4,1,"","__module__"],[4,5,1,"","__repr__"],[4,4,1,"","__weakref__"],[4,5,1,"","_get_data"],[4,5,1,"","conform"],[4,5,1,"","from_yaml"],[4,6,1,"","groups"],[4,5,1,"","to_blob"],[4,5,1,"","to_dataframe"],[4,5,1,"","to_html"]],"rolling_pin.radon_etl":[[4,3,1,"","RadonETL"]],"rolling_pin.radon_etl.RadonETL":[[4,4,1,"","__dict__"],[4,5,1,"","__init__"],[4,4,1,"","__module__"],[4,4,1,"","__weakref__"],[4,5,1,"","_get_cyclomatic_complexity_dataframe"],[4,5,1,"","_get_halstead_dataframe"],[4,5,1,"","_get_maintainability_index_dataframe"],[4,5,1,"","_get_radon_data"],[4,5,1,"","_get_radon_report"],[4,5,1,"","_get_raw_metrics_dataframe"],[4,6,1,"","cyclomatic_complexity_metrics"],[4,6,1,"","data"],[4,6,1,"","halstead_metrics"],[4,6,1,"","maintainability_index"],[4,6,1,"","raw_metrics"],[4,6,1,"","report"],[4,5,1,"","write_plots"],[4,5,1,"","write_tables"]],"rolling_pin.repo_etl":[[4,3,1,"","RepoETL"],[4,2,1,"","write_repo_architecture"],[4,2,1,"","write_repo_plots_and_tables"]],"rolling_pin.repo_etl.RepoETL":[[4,4,1,"","__dict__"],[4,5,1,"","__init__"],[4,4,1,"","__module__"],[4,4,1,"","__weakref__"],[4,5,1,"","_anneal_coordinate"],[4,5,1,"","_calculate_coordinates"],[4,5,1,"","_center_coordinate"],[4,5,1,"","_get_data"],[4,5,1,"","_get_imports"],[4,5,1,"","_to_networkx_graph"],[4,5,1,"","to_dataframe"],[4,5,1,"","to_dot_graph"],[4,5,1,"","to_html"],[4,5,1,"","to_networkx_graph"],[4,5,1,"","write"]],"rolling_pin.tools":[[4,1,1,"","LOGGER"],[4,2,1,"","copy_file"],[4,2,1,"","directory_to_dataframe"],[4,2,1,"","dot_to_html"],[4,2,1,"","filter_text"],[4,2,1,"","flatten"],[4,2,1,"","get_parent_fields"],[4,2,1,"","is_dictlike"],[4,2,1,"","is_iterable"],[4,2,1,"","is_listlike"],[4,2,1,"","list_all_files"],[4,2,1,"","move_file"],[4,2,1,"","nest"],[4,2,1,"","read_text"],[4,2,1,"","unembed"],[4,2,1,"","write_dot_graph"],[4,2,1,"","write_text"]],cli:[[0,1,1,"","PORT"],[0,2,1,"","app_command"],[0,2,1,"","build_dev_command"],[0,2,1,"","build_prod_command"],[0,2,1,"","container_id_command"],[0,2,1,"","coverage"],[0,2,1,"","coverage_command"],[0,2,1,"","destroy_dev_command"],[0,2,1,"","destroy_prod_command"],[0,2,1,"","docker_exec"],[0,2,1,"","docs_command"],[0,2,1,"","enter_repo"],[0,2,1,"","exit_repo"],[0,2,1,"","fast_test_command"],[0,2,1,"","full_docs_command"],[0,2,1,"","get_illegal_mode_command"],[0,2,1,"","get_info"],[0,2,1,"","image_id_command"],[0,2,1,"","lab_command"],[0,2,1,"","line"],[0,2,1,"","lint_command"],[0,2,1,"","main"],[0,2,1,"","make_docs_dir"],[0,2,1,"","package_command"],[0,2,1,"","package_repo"],[0,2,1,"","prod_command"],[0,2,1,"","publish_command"],[0,2,1,"","push_command"],[0,2,1,"","python_command"],[0,2,1,"","remove_command"],[0,2,1,"","remove_container"],[0,2,1,"","requirements_command"],[0,2,1,"","resolve"],[0,2,1,"","restart_command"],[0,2,1,"","start"],[0,2,1,"","start_command"],[0,2,1,"","state_command"],[0,2,1,"","stop"],[0,2,1,"","stop_command"],[0,2,1,"","test_command"],[0,2,1,"","tmp_repo"],[0,2,1,"","tox_command"],[0,2,1,"","tox_repo"],[0,2,1,"","version_up_command"],[0,2,1,"","version_variable"],[0,2,1,"","zsh_command"],[0,2,1,"","zsh_complete_command"],[0,2,1,"","zsh_root_command"]],rolling_pin:[[4,0,0,"-","app"],[4,0,0,"-","blob_etl"],[4,0,0,"-","conform_config"],[4,0,0,"-","conform_etl"],[4,0,0,"-","radon_etl"],[4,0,0,"-","repo_etl"],[4,0,0,"-","tools"]]},objnames:{"0":["py","module","Python module"],"1":["py","data","Python data"],"2":["py","function","Python function"],"3":["py","class","Python class"],"4":["py","attribute","Python attribute"],"5":["py","method","Python method"],"6":["py","property","Python property"]},objtypes:{"0":"py:module","1":"py:data","2":"py:function","3":"py:class","4":"py:attribute","5":"py:method","6":"py:property"},terms:{"0":4,"1":4,"10":4,"1st":4,"2":4,"242424":4,"343434":4,"4":[2,4],"5180":2,"80":2,"8080":0,"9":4,"boolean":4,"case":4,"class":[2,4],"default":[0,4],"do":4,"final":4,"function":[0,4],"import":4,"int":4,"new":4,"return":[0,4],"static":4,"true":4,A:[0,2,4],For:[1,4],If:[2,4],It:2,On:2,The:2,Then:[0,4],__:2,__annotations__:4,__dict__:4,__doc__:4,__init__:4,__module__:4,__repr__:4,__weakref__:4,_anneal_coordin:4,_calculate_coordin:4,_center_coordin:4,_data:4,_get_cyclomatic_complexity_datafram:4,_get_data:4,_get_halstead_datafram:4,_get_import:4,_get_maintainability_index_datafram:4,_get_radon_data:4,_get_radon_report:4,_get_raw_metrics_datafram:4,_line_rul:4,_root:4,_schema:4,_separ:4,_test:4,_to_networkx_graph:4,a0d17b:4,absolut:4,accord:4,after:4,aggreg:4,agnost:0,align:4,all:[1,4],alloc:2,along:4,an:0,analysi:0,angl:4,ani:4,anneal:4,anneal_axi:4,anneal_column:4,app:[0,1,3],app_command:0,app_data:4,appli:4,ar:4,architectur:[0,2,4],arg:0,argument:[0,4],as_png:4,assertionerror:4,attribut:4,axi:4,b6ecf3:4,back:4,background:4,base:4,basic:4,belong:4,bin:2,blob:[2,4],blob_etl:[1,3],blobetl:4,block:0,bool:4,bottom:4,bt:4,build:0,build_dev_command:0,build_prod_command:0,calcul:4,call:[0,4],callabl:4,can:4,cd:2,center:4,center_axi:4,chmod:2,circo:4,classmethod:4,cli:[1,3],clone:2,code:[0,1,2],color:4,color_schem:4,column:4,com:2,command:[0,2],commmand:0,complet:0,complex:[1,4],compound:4,configur:4,conform:4,conform_color_schem:4,conform_config:[1,3],conform_etl:[1,3],conformconfig:4,conformetl:4,connect:4,consid:4,constant:4,construct:4,contain:[0,4],container_id_command:0,contruct:4,conveni:[0,4],convert:4,coordin:4,copi:4,copy_fil:4,copy_lin:[],core:4,counter:4,coverag:[0,1],coverage_command:0,creat:[0,4],current:2,cyan:4,cyclomat:[1,4],cyclomatic_complexity_metr:4,data:[2,4],dataerror:4,datafram:4,de958:4,deepli:0,defin:4,delet:4,demo:2,depend:[0,2,4],deploi:0,deprec:4,deserialize_map:4,destroi:0,destroy_dev_command:0,destroy_prod_command:0,determin:4,dev:0,develop:[0,1],diagram:0,dick:4,dict:4,dictionari:4,differ:[0,4],digraph:4,dirct:4,direct:4,directi:4,directori:[0,4],directory_to_datafram:4,dirpath:4,displai:4,doc:0,docker:[0,1],docker_down:[],docker_exec:0,dockerhub:0,docs_command:0,document:[0,2],doe:4,dot:4,dot_to_html:4,ds_store:4,dynam:2,each:4,edg:4,edge_librari:4,edge_modul:4,edge_subpackag:4,edge_valu:4,edit:4,embed:4,embed_typ:4,end:4,endpoint:4,enforceerror:4,ensur:2,enter:0,enter_repo:0,etl:[2,4],exampl:4,exclud:4,exclude_regex:4,exec:0,exist:4,exit_repo:0,express:4,extens:4,extract:4,fals:4,fast_test_command:0,fdp:4,few:2,field:4,field_sett:4,file:4,filenam:4,filenotfounderror:4,filepath:4,filter:4,filter_text:4,find:2,first:4,flask:4,flat:4,flat_dict:4,flatten:4,form:4,format:[0,4],found:4,four:4,frame:4,from:[0,4],from_yaml:4,frozen_requir:0,full:[0,4],full_docs_command:0,fulllpath:4,fullpath:4,gb:2,gener:[0,2,4],get:[0,4],get_illegal_mode_command:0,get_info:0,get_parent_field:4,get_svg:4,git:2,github:[2,4],give:[],given:[0,4],graph:[2,4],group:4,group_bi:4,group_rul:4,grouprul:4,ha:[2,4],halstead:[1,4],halstead_metr:4,hand:4,have:4,held:4,help:2,html:4,http:2,id:0,ignore_cas:4,ignore_casd:4,illeg:0,imag:[0,4],image_id_command:0,includ:4,include_regex:4,index:[1,4],inform:4,init:4,inlin:4,insid:0,instal:[0,1],instanc:4,instead:4,integr:0,intern:4,interpret:0,invalid:4,io:2,ipynb:2,ipython:4,is_dictlik:4,is_dir:4,is_iter:4,is_listlik:4,item:4,iter:4,jane:4,json:[2,4],jupyt:[0,2,4],k:4,keep:4,kei:4,key_sett:4,keyword:4,kwarg:4,lab:[0,4],lab_command:0,lambda:4,last:4,layout:4,lazi:4,least:2,left:4,level:4,librari:[2,4],like:4,line:[0,2,4],line_rul:4,linerul:4,lint:0,lint_command:0,list:[0,4],list_:4,list_all_fil:4,listtyp:4,local:4,logger:4,look:2,lr:4,machin:2,maco:2,main:[0,2],maintain:[1,4],maintainability_index:4,make_docs_dir:0,mappingproxi:4,mark:0,master:2,match:4,mean:4,memori:2,method:4,metric:[0,2,4],minut:2,mock:4,mock_:4,mode:0,model:4,modeltyp:4,modul:[1,4],more:[2,4],move:4,move_fil:4,n:4,name:[2,4],neato:4,need:4,nest:4,networkx:4,newlin:4,node:4,node_font:4,node_library_font:4,node_module_font:4,node_nam:4,node_subpackage_font:4,node_typ:4,node_valu:4,node_value_font:4,non:4,none:[0,4],notebook:2,number:4,object:4,one:4,optim:4,option:[0,4],order:4,orient:4,origin:[0,4],orthogonal_edg:4,other:4,output:4,overlap:4,packag:0,package_command:0,package_repo:0,page:[1,2],panda:4,paramet:[0,4],parent:4,pars:[0,4],partial:[0,4],patch_model:4,patch_schema:4,path:4,pathlib:4,pattern:4,pd:4,peform:4,per:4,pin:4,pin_axi:4,pip:[0,2],plot:[0,1,2,4],plot_path:4,png:4,port:0,posit:4,predic:4,print:0,prod:[0,2],prod_command:0,properti:4,prototyp:4,prototype_demo:2,provid:0,publish:[0,2],publish_command:0,pull:2,push:0,push_command:0,py:4,pydot:4,python:[0,4],python_command:0,queri:4,radon:[2,4],radon_etl:[1,3],radonetl:[2,4],rais:4,raw:[1,4],raw_data:4,raw_metr:4,read:4,read_text:4,record:4,rectifi:4,recurs:4,recus:4,red:4,refer:4,regener:0,regex:4,regular:4,remov:[0,4],remove_command:0,remove_contain:0,renam:4,rename_rul:4,renamerul:4,render:4,replac:4,replace_regex:4,replace_valu:4,repo:[0,4],repo_etl:[1,3],repoetl:[2,4],report:[0,1,4],repositori:[0,2,4],repres:4,represent:4,requir:4,requirements_command:0,resolv:0,respons:4,restart:0,restart_command:0,retrun:4,right:4,rl:4,rm:2,rolling_pin:4,root:[0,4],row:4,rule:4,run:[0,2],s:[0,2,4],schema:4,schemat:4,scheme:4,search:[1,4],searchabl:4,section:2,self:4,sep:0,separ:[0,4],seri:0,servic:2,session:0,set:[0,4],set_field:4,sfdp:4,shell:4,should:[2,4],shutdown:0,singl:[0,4],slow:0,smith:4,so:4,sort:4,sourc:[0,2,4],source_rul:4,sourcerul:4,split:4,start:[0,2],start_command:0,startifi:4,state:0,state_command:0,statement:4,staticmethod:4,stdout:0,stop:0,stop_command:0,store:4,str:[0,4],strict:4,string:4,stringtyp:4,structur:[0,4],style:4,subpackag:4,substitut:4,substr:0,suppli:4,support:4,svg:4,tabl:4,table_dir:4,take:2,target:4,target_dir:4,tb:4,temporari:0,test:[0,4],test_:4,test_command:0,text:[0,4],thei:4,them:4,thenewflesh:2,thi:[0,4],time:4,tmp:0,tmp_repo:0,to_blob:4,to_datafram:4,to_dict:4,to_dot_graph:4,to_flat_dict:4,to_html:4,to_networkx_graph:4,to_prototyp:4,to_record:4,to_svg:4,tobe:4,tom:4,tool:[1,2,3],top:4,tox:0,tox_command:0,tox_repo:0,trusted_data:4,tupl:0,twopi:4,txt:0,type:[0,4],under:2,unemb:4,union:4,univers:4,up:2,updat:4,us:[2,4],user:4,util:[1,3],v:4,valid:4,validationerror:4,valu:[0,4],value_sett:4,valueerror:4,variabl:0,version:[0,2],version_up_command:0,version_vari:0,visual:2,walk:4,warn:4,weak:4,whether:4,which:4,window:2,within:4,work:2,wrapper:4,write:4,write_dot_graph:4,write_plot:4,write_repo_architectur:4,write_repo_plots_and_t:4,write_t:4,write_text:4,written:[0,4],x:[2,4],y:4,yaml:4,yet:0,yield:4,yml:4,you:2,zsh:0,zsh_command:0,zsh_complete_command:0,zsh_root_command:0},titles:["cli","Welcome to rolling-pin\u2019 documentation!","Rolling-Pin","<no title>","app"],titleterms:{For:2,api:1,app:4,architectur:1,blob_etl:4,cli:0,conform_config:4,conform_etl:4,develop:2,docker:2,document:1,indic:1,instal:2,metric:1,pin:[1,2],python:[1,2],radon_etl:4,repo_etl:4,roll:[1,2],tabl:1,tool:4,util:4,welcom:1}}) \ No newline at end of file diff --git a/pip/version.txt b/pip/version.txt index d2b13eb..ef5e445 100644 --- a/pip/version.txt +++ b/pip/version.txt @@ -1 +1 @@ -0.6.4 +0.6.5