python-oracle-apex 0.0.4__tar.gz → 0.0.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/PKG-INFO +1 -1
  2. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/pyproject.toml +1 -1
  3. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/pyproject.toml.orig +1 -1
  4. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/grammar-26.1.peg +112 -6
  5. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/objects/__init__.py +2 -1
  6. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/objects/region.py +14 -5
  7. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/visitor/region.py +4 -0
  8. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/README.md +0 -0
  9. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/__init__.py +0 -0
  10. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/grammar-24.0.peg +0 -0
  11. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/objects/action_c.py +0 -0
  12. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/objects/base.py +0 -0
  13. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/objects/button.py +0 -0
  14. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/objects/computation_a.py +0 -0
  15. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/objects/dynamic_action.py +0 -0
  16. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/objects/page.py +0 -0
  17. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/objects/page_item.py +0 -0
  18. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/objects/process.py +0 -0
  19. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/parser.py +0 -0
  20. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/reader/__init__.py +0 -0
  21. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/reader/button.py +0 -0
  22. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/reader/page.py +0 -0
  23. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/reader/page_item.py +0 -0
  24. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/reader/parse.py +0 -0
  25. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/reader/region.py +0 -0
  26. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/reader/utils.py +0 -0
  27. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/visitor/__init__.py +0 -0
  28. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/visitor/action_c.py +0 -0
  29. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/visitor/button.py +0 -0
  30. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/visitor/computation_a.py +0 -0
  31. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/visitor/dynamic_action.py +0 -0
  32. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/visitor/exception.py +0 -0
  33. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/visitor/page.py +0 -0
  34. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/visitor/page_item.py +0 -0
  35. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/visitor/process.py +0 -0
  36. {python_oracle_apex-0.0.4 → python_oracle_apex-0.0.5}/src/python_oracle_apex/visitor/visitor.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: python-oracle-apex
3
- Version: 0.0.4
3
+ Version: 0.0.5
4
4
  Summary: Parsing files exported from Oracle APEX
5
5
  Author: Maurice Koster
6
6
  Author-email: Maurice Koster <maurice@mauricekoster.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "python-oracle-apex"
3
- version = "0.0.4"
3
+ version = "0.0.5"
4
4
  description = "Parsing files exported from Oracle APEX"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "python-oracle-apex"
3
- version = "0.0.4"
3
+ version = "0.0.5"
4
4
  description = "Parsing files exported from Oracle APEX"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -3,6 +3,7 @@ component = page_object blank_lines
3
3
  / process blank_lines
4
4
  / button blank_lines
5
5
  / computation_a blank_lines
6
+ / facet blank_lines
6
7
  page_object = indent "page" (required_ws component_id)? ws "(" page_body_line* indent ")" line_end
7
8
  page_body_line = page_direct_property_line
8
9
  / page_group_block
@@ -79,6 +80,7 @@ page_child_component = region
79
80
  region = indent "region" (required_ws component_id)? ws "(" line_end region_body_line* indent ")" line_end
80
81
  region_body_line = region_direct_property_line
81
82
  / region_group_block
83
+ / region_child_component
82
84
  / blank_lines
83
85
 
84
86
  region_direct_property_line = indent region_direct_property line_end
@@ -93,6 +95,10 @@ region_group_block = region_layout
93
95
  / region_source
94
96
  / region_component_appearance
95
97
  / region_settings
98
+ / region_accessibility
99
+ / region_plugin_avatar
100
+ / region_plugin_badge
101
+ / region_pagination
96
102
 
97
103
  region_layout = indent "layout" ws "{" line_end region_layout_property_line* indent "}" line_end
98
104
  region_layout_property_line = indent region_layout_property line_end
@@ -136,13 +142,13 @@ region_advanced_property = "savedReportMappingIdentifier" ":" ws stri
136
142
 
137
143
  region_source = indent "source" ws "{" line_end region_source_property_line* indent "}" line_end
138
144
  region_source_property_line = indent region_source_property line_end
139
- region_source_property = "sqlQuery" ":" ws multiline_string
140
- / "plsqlCode" ":" ws multiline_string
141
- / "plsqlFunctionBody" ":" ws multiline_string
142
- / "htmlCode" ":" ws multiline_string
145
+ region_source_property = "sqlQuery" ":" ws code_block
146
+ / "plsqlCode" ":" ws code_block
147
+ / "plsqlFunctionBody" ":" ws code_block
148
+ / "htmlCode" ":" ws code_block
143
149
  / "text" ":" ws multiline_string
144
150
  / "language" ":" ws ( "plsql" / "javaScript-mle" )
145
- / "javaScriptFunctionBody" ":" ws multiline_string
151
+ / "javaScriptFunctionBody" ":" ws code_block
146
152
  / "location" ":" ws ( "localDatabase" / "restEnabledSql" / "restSource" / "jsonDualityView" / "jsonSource" / "sampleData" )
147
153
  / "remoteServer" ":" ws reference
148
154
  / "sampleData" ":" ws ( "employees" / "tasks" / "products" / "projects" )
@@ -197,11 +203,53 @@ region_settings_property = "timeAxisType" ":" ws ( "auto" / "disabled
197
203
  / "pieSelectionEffect" ":" ws ( "explode" / "highlightAndExplode" / "highlight" )
198
204
  / "renderAs" ":" ws ( "area" / "bar" / "candlestick" / "line" / "lineWithArea" )
199
205
 
200
- # UNDOCUMENTED! used in brookstrut page 2
206
+ # UNDOCUMENTED! used in brookstrut page 2 (type: Faceted Search)
201
207
  / "compactNosThreshold" ":" ws number
202
208
  / "showCurrentFacets" ":" ws ( "selector" )
203
209
  / "currentFacetsSelector" ":" ws string_like_value
204
210
  / "displayChartForTopNValues" ":" ws number
211
+
212
+ / "title" ":" ws string_like_value
213
+ / "description" ":" ws code_block
214
+ / "miscellaneous" ":" ws code_block
215
+ / "displayAvatar" ":" ws boolean
216
+ / "displayBadge" ":" ws boolean
217
+
218
+ region_plugin_avatar = indent "plugin-avatar" ws "{" line_end region_plugin_avatar_property_line* indent "}" line_end
219
+ region_plugin_avatar_property_line = indent region_plugin_avatar_property line_end
220
+ region_plugin_avatar_property = "icon" ":" ws string_like_value
221
+
222
+ region_plugin_badge = indent "plugin-badge" ws "{" line_end region_plugin_badge_property_line* indent "}" line_end
223
+ region_plugin_badge_property_line = indent region_plugin_badge_property line_end
224
+ region_plugin_badge_property = "label" ":" ws string_like_value
225
+ / "value" ":" ws string_like_value
226
+
227
+ region_accessibility = indent "accessibility" ws "{" line_end region_accessibility_property_line* indent "}" line_end
228
+ region_accessibility_property_line = indent region_accessibility_property line_end
229
+ region_accessibility_property = "useLandmark" ":" ws boolean
230
+ / "landmarkType" ":" ws ( "banner" / "complementary" / "contentInfo" / "form" / "main" / "navigation" / "region" / "search" )
231
+ / "landmarkLabel" ":" ws string_like_value
232
+
233
+ region_pagination = indent "pagination" ws "{" line_end region_pagination_property_line* indent "}" line_end
234
+ region_pagination_property_line = indent region_pagination_property line_end
235
+ region_pagination_property = "type" ":" ws ( "rowRangesXToYNoPagination" / "rowRangesXToYOfZNoPagination" /
236
+ "rowRangesXToYOfZWithPagination" / "setPaginationLinks" /
237
+ "setPaginationSelectList" / "setPaginationSearchEngine" /
238
+ "externalPaginationButtons" / "nextAndPreviousLinks" /
239
+ "page" / "scroll"
240
+ )
241
+ / "type" ":" ws string_like_value
242
+ / "displayPosition" ":" ws ( "bottomLeft" / "bottomRight" / "topLeft" / "topRight" /
243
+ "topAndBottomLeft" / "topAndBottomRight" )
244
+ / "partialPageRefresh" ":" ws boolean
245
+ / "showTotalCount" ":" ws boolean
246
+ / "maxRowsToDisplay" ":" ws string_like_value
247
+ / "cardsPerPage" ":" ws number
248
+ / "entitiesPerPage" ":" ws number
249
+ / "initialEntitiesCount" ":" ws number
250
+
251
+
252
+ region_child_component = facet
205
253
  page_item = indent "pageItem" (required_ws component_id)? ws "(" line_end page_item_body_line* indent ")" line_end
206
254
  page_item_body_line = page_item_direct_property_line
207
255
  / page_item_group_block
@@ -481,6 +529,64 @@ action_c_execution_property = "sequence" ":" ws number
481
529
  / "fireOnInit" ":" ws boolean
482
530
  / "stopExecutionOnError" ":" ws boolean
483
531
  / "waitForResult" ":" ws boolean
532
+ facet = indent "facet" (required_ws component_id)? ws "(" line_end facet_body_line* indent ")" line_end
533
+ facet_body_line = facet_direct_property_line
534
+ / facet_group_block
535
+
536
+ facet_direct_property_line = indent facet_direct_property line_end
537
+ facet_direct_property = "name" ":" ws string_like_value
538
+ / "type" ":" ws string_like_value
539
+
540
+ facet_group_block = facet_label
541
+
542
+ facet_group_block = facet_label
543
+ / facet_layout
544
+ / facet_source
545
+ / facet_lov
546
+ / facet_list_entries
547
+
548
+ facet_label = indent "label" ws "{" line_end facet_label_property_line* indent "}" line_end
549
+ facet_label_property_line = indent facet_label_property line_end
550
+ facet_label_property = "label" ":" ws string_like_value
551
+ / "showLabelForCurrentFacet" ":" ws boolean
552
+
553
+ facet_layout = indent "layout" ws "{" line_end facet_layout_property_line* indent "}" line_end
554
+ facet_layout_property_line = indent facet_layout_property line_end
555
+ facet_layout_property = "sequence" ":" ws number
556
+ / "maxHeight" ":" ws number
557
+
558
+ facet_source = indent "source" ws "{" line_end facet_source_property_line* indent "}" line_end
559
+ facet_source_property_line = indent facet_source_property line_end
560
+ facet_source_property = "databaseColumn" ":" ws string_like_value
561
+ / "dbColumns" ":" ws string_like_value
562
+ / "dataType" ":" ws ( "varchar2" / "number" / "date" / "timestamp" /
563
+ "timestampWithTimeZone" / "timestampWithLocalTimeZone" /
564
+ "intervalYearToMonth" / "intervalDayToSecond" /
565
+ "clob" / "blob" / "boolean" / "rowid" / "bfile" / "sdoGeometry" )
566
+
567
+ facet_lov = indent "lov" ws "{" line_end* facet_lov_property_line* indent "}" line_end
568
+ facet_lov_property_line = indent facet_lov_property line_end
569
+ facet_lov_property = "type" ":" ws string_like_value
570
+ / "lov" ":" ws reference
571
+ / "sqlQuery" ":" ws code_block
572
+ / "staticValues" ":" ws code_block
573
+ / "language" ":" ws ( "plsql" / "javaScript-mle" )
574
+ / "plsqlFunctionBody" ":" ws code_block
575
+ / "javaScriptFunctionBody" ":" ws code_block
576
+ / "sortDirection" ":" ws ( "asc" / "desc" )
577
+ / "includeNullOption" ":" ws boolean
578
+ / "nullDisplayValue" ":" ws string_like_value
579
+
580
+ facet_list_entries = indent "listEntries" ws "{" line_end facet_list_entries_property_line* indent "}" line_end
581
+ facet_list_entries_property_line = indent facet_list_entries_property line_end
582
+ facet_list_entries_property = "computeCounts" ":" ws boolean
583
+ / "showCounts" ":" ws boolean
584
+ / "zeroCountEntries" ":" ws ( "hide" / "disable" / "showLast" )
585
+ / "sortByTopCounts" ":" ws boolean
586
+ / "showSelectedFirst" ":" ws boolean
587
+ / "maxDisplayedEntries" ":" ws number
588
+ / "allowToExclude" ":" ws boolean
589
+ / "displayFilterInitially" ":" ws boolean
484
590
 
485
591
  reference = "@" reference_character*
486
592
  component_id = string / identifier / number
@@ -46,7 +46,8 @@ from .region import (
46
46
  RegionAdvanced,
47
47
  RegionComponentAppearance,
48
48
  RegionImage,
49
- RegionSource
49
+ RegionSource,
50
+ RegionSettings
50
51
  )
51
52
  from .page import (
52
53
  Page,
@@ -13,12 +13,12 @@ class RegionLayout(ApexGroup):
13
13
  return self.properties.get('parentRegion', None)
14
14
 
15
15
  class RegionAppearance(ApexGroup):
16
- def __init__(self, initial_data={}):
17
- super().__init__(initial_data)
18
-
16
+ pass
19
17
 
20
18
  class RegionSource(ApexGroup):
21
- pass
19
+ @property
20
+ def list(self):
21
+ return self.properties.get('list', None)
22
22
 
23
23
 
24
24
  class RegionAdvanced(ApexGroup):
@@ -59,4 +59,13 @@ class Region(ApexObject):
59
59
  @property
60
60
  def appearance(self):
61
61
  return self.groups.get('appearance', RegionAppearance())
62
-
62
+
63
+ @property
64
+ def settings(self):
65
+ return self.groups.get('settings', RegionSettings())
66
+
67
+ @property
68
+ def source(self):
69
+ return self.groups.get('source', RegionSource())
70
+
71
+
@@ -17,8 +17,12 @@ class RegionVisitor:
17
17
  if type(item) is tuple:
18
18
  if type(item[1]) is dict:
19
19
  region.add_group(item[0], item[1])
20
+ elif isinstance(item[1], ApexGroup):
21
+ region.add_group(item[0], item[1])
20
22
  else:
21
23
  region.add_property(item[0], item[1])
24
+ elif isinstance(item, ApexObject):
25
+ region.add_child(item)
22
26
  elif item is None:
23
27
  # blanklines
24
28
  continue