nominal-api 0.781.0__tar.gz → 0.783.0__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.

Potentially problematic release.


This version of nominal-api might be problematic. Click here for more details.

Files changed (85) hide show
  1. {nominal_api-0.781.0 → nominal_api-0.783.0}/PKG-INFO +1 -1
  2. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/__init__.py +1 -1
  3. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/_impl.py +143 -11
  4. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api.egg-info/PKG-INFO +1 -1
  5. {nominal_api-0.781.0 → nominal_api-0.783.0}/setup.py +1 -1
  6. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/api/__init__.py +0 -0
  7. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/api_ids/__init__.py +0 -0
  8. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/api_rids/__init__.py +0 -0
  9. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/attachments_api/__init__.py +0 -0
  10. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/authentication_api/__init__.py +0 -0
  11. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/authorization/__init__.py +0 -0
  12. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/comments_api/__init__.py +0 -0
  13. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/connect_download/__init__.py +0 -0
  14. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/datasource/__init__.py +0 -0
  15. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/datasource_api/__init__.py +0 -0
  16. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/datasource_logset/__init__.py +0 -0
  17. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/datasource_logset_api/__init__.py +0 -0
  18. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/datasource_pagination_api/__init__.py +0 -0
  19. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/event/__init__.py +0 -0
  20. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/ingest_api/__init__.py +0 -0
  21. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/ingest_workflow_api/__init__.py +0 -0
  22. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/module/__init__.py +0 -0
  23. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/module_internal/__init__.py +0 -0
  24. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/modules_api/__init__.py +0 -0
  25. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/persistent_compute_api/__init__.py +0 -0
  26. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/py.typed +0 -0
  27. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout/__init__.py +0 -0
  28. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_api/__init__.py +0 -0
  29. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_asset_api/__init__.py +0 -0
  30. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_assets/__init__.py +0 -0
  31. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_catalog/__init__.py +0 -0
  32. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_channelvariables_api/__init__.py +0 -0
  33. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_chart_api/__init__.py +0 -0
  34. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_chartdefinition_api/__init__.py +0 -0
  35. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_checklistexecution_api/__init__.py +0 -0
  36. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_checks_api/__init__.py +0 -0
  37. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_comparisonnotebook_api/__init__.py +0 -0
  38. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_comparisonrun_api/__init__.py +0 -0
  39. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_compute_api/__init__.py +0 -0
  40. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_compute_api_deprecated/__init__.py +0 -0
  41. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_compute_resolved_api/__init__.py +0 -0
  42. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_dataexport_api/__init__.py +0 -0
  43. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_datareview_api/__init__.py +0 -0
  44. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_datasource/__init__.py +0 -0
  45. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_datasource_connection/__init__.py +0 -0
  46. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_datasource_connection_api/__init__.py +0 -0
  47. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_datasource_connection_api_influx/__init__.py +0 -0
  48. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_favorites/__init__.py +0 -0
  49. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_favorites_api/__init__.py +0 -0
  50. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_integrations_api/__init__.py +0 -0
  51. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_internal_search_api/__init__.py +0 -0
  52. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_jobs_api/__init__.py +0 -0
  53. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_layout_api/__init__.py +0 -0
  54. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_metadata/__init__.py +0 -0
  55. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_notebook_api/__init__.py +0 -0
  56. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_plotting/__init__.py +0 -0
  57. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_rids_api/__init__.py +0 -0
  58. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_run_api/__init__.py +0 -0
  59. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_template_api/__init__.py +0 -0
  60. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_units_api/__init__.py +0 -0
  61. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_versioning_api/__init__.py +0 -0
  62. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_video/__init__.py +0 -0
  63. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_video_api/__init__.py +0 -0
  64. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/scout_workbookcommon_api/__init__.py +0 -0
  65. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/secrets_api/__init__.py +0 -0
  66. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/security_api_workspace/__init__.py +0 -0
  67. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/storage_datasource_api/__init__.py +0 -0
  68. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/storage_deletion_api/__init__.py +0 -0
  69. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/storage_series_api/__init__.py +0 -0
  70. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/storage_writer_api/__init__.py +0 -0
  71. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/themes_api/__init__.py +0 -0
  72. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/timeseries_archetype/__init__.py +0 -0
  73. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/timeseries_archetype_api/__init__.py +0 -0
  74. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/timeseries_channelmetadata/__init__.py +0 -0
  75. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/timeseries_channelmetadata_api/__init__.py +0 -0
  76. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/timeseries_logicalseries/__init__.py +0 -0
  77. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/timeseries_logicalseries_api/__init__.py +0 -0
  78. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/timeseries_seriescache/__init__.py +0 -0
  79. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/timeseries_seriescache_api/__init__.py +0 -0
  80. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api/upload_api/__init__.py +0 -0
  81. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api.egg-info/SOURCES.txt +0 -0
  82. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api.egg-info/dependency_links.txt +0 -0
  83. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api.egg-info/requires.txt +0 -0
  84. {nominal_api-0.781.0 → nominal_api-0.783.0}/nominal_api.egg-info/top_level.txt +0 -0
  85. {nominal_api-0.781.0 → nominal_api-0.783.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.781.0
3
+ Version: 0.783.0
4
4
  Requires-Python: >=3.8
5
5
  Requires-Dist: requests
6
6
  Requires-Dist: conjure-python-client<4,>=2.8.0
@@ -78,5 +78,5 @@ __all__ = [
78
78
 
79
79
  __conjure_generator_version__ = "4.17.0"
80
80
 
81
- __version__ = "0.781.0"
81
+ __version__ = "0.783.0"
82
82
 
@@ -42291,22 +42291,25 @@ scout_compute_api_DurationFilterRanges.__module__ = "nominal_api.scout_compute_a
42291
42291
  class scout_compute_api_Enum1dArraySeries(ConjureUnionType):
42292
42292
  _channel: Optional["scout_compute_api_ChannelSeries"] = None
42293
42293
  _raw: Optional["scout_compute_api_Reference"] = None
42294
+ _derived: Optional["scout_compute_api_DerivedSeries"] = None
42294
42295
 
42295
42296
  @builtins.classmethod
42296
42297
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
42297
42298
  return {
42298
42299
  'channel': ConjureFieldDefinition('channel', scout_compute_api_ChannelSeries),
42299
- 'raw': ConjureFieldDefinition('raw', scout_compute_api_Reference)
42300
+ 'raw': ConjureFieldDefinition('raw', scout_compute_api_Reference),
42301
+ 'derived': ConjureFieldDefinition('derived', scout_compute_api_DerivedSeries)
42300
42302
  }
42301
42303
 
42302
42304
  def __init__(
42303
42305
  self,
42304
42306
  channel: Optional["scout_compute_api_ChannelSeries"] = None,
42305
42307
  raw: Optional["scout_compute_api_Reference"] = None,
42308
+ derived: Optional["scout_compute_api_DerivedSeries"] = None,
42306
42309
  type_of_union: Optional[str] = None
42307
42310
  ) -> None:
42308
42311
  if type_of_union is None:
42309
- if (channel is not None) + (raw is not None) != 1:
42312
+ if (channel is not None) + (raw is not None) + (derived is not None) != 1:
42310
42313
  raise ValueError('a union must contain a single member')
42311
42314
 
42312
42315
  if channel is not None:
@@ -42315,6 +42318,9 @@ class scout_compute_api_Enum1dArraySeries(ConjureUnionType):
42315
42318
  if raw is not None:
42316
42319
  self._raw = raw
42317
42320
  self._type = 'raw'
42321
+ if derived is not None:
42322
+ self._derived = derived
42323
+ self._type = 'derived'
42318
42324
 
42319
42325
  elif type_of_union == 'channel':
42320
42326
  if channel is None:
@@ -42326,6 +42332,11 @@ class scout_compute_api_Enum1dArraySeries(ConjureUnionType):
42326
42332
  raise ValueError('a union value must not be None')
42327
42333
  self._raw = raw
42328
42334
  self._type = 'raw'
42335
+ elif type_of_union == 'derived':
42336
+ if derived is None:
42337
+ raise ValueError('a union value must not be None')
42338
+ self._derived = derived
42339
+ self._type = 'derived'
42329
42340
 
42330
42341
  @builtins.property
42331
42342
  def channel(self) -> Optional["scout_compute_api_ChannelSeries"]:
@@ -42335,6 +42346,10 @@ class scout_compute_api_Enum1dArraySeries(ConjureUnionType):
42335
42346
  def raw(self) -> Optional["scout_compute_api_Reference"]:
42336
42347
  return self._raw
42337
42348
 
42349
+ @builtins.property
42350
+ def derived(self) -> Optional["scout_compute_api_DerivedSeries"]:
42351
+ return self._derived
42352
+
42338
42353
  def accept(self, visitor) -> Any:
42339
42354
  if not isinstance(visitor, scout_compute_api_Enum1dArraySeriesVisitor):
42340
42355
  raise ValueError('{} is not an instance of scout_compute_api_Enum1dArraySeriesVisitor'.format(visitor.__class__.__name__))
@@ -42342,6 +42357,8 @@ class scout_compute_api_Enum1dArraySeries(ConjureUnionType):
42342
42357
  return visitor._channel(self.channel)
42343
42358
  if self._type == 'raw' and self.raw is not None:
42344
42359
  return visitor._raw(self.raw)
42360
+ if self._type == 'derived' and self.derived is not None:
42361
+ return visitor._derived(self.derived)
42345
42362
 
42346
42363
 
42347
42364
  scout_compute_api_Enum1dArraySeries.__name__ = "Enum1dArraySeries"
@@ -42359,6 +42376,10 @@ class scout_compute_api_Enum1dArraySeriesVisitor:
42359
42376
  def _raw(self, raw: "scout_compute_api_Reference") -> Any:
42360
42377
  pass
42361
42378
 
42379
+ @abstractmethod
42380
+ def _derived(self, derived: "scout_compute_api_DerivedSeries") -> Any:
42381
+ pass
42382
+
42362
42383
 
42363
42384
  scout_compute_api_Enum1dArraySeriesVisitor.__name__ = "Enum1dArraySeriesVisitor"
42364
42385
  scout_compute_api_Enum1dArraySeriesVisitor.__qualname__ = "Enum1dArraySeriesVisitor"
@@ -42722,6 +42743,7 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
42722
42743
  _aggregate: Optional["scout_compute_api_AggregateEnumSeries"] = None
42723
42744
  _raw: Optional["scout_compute_api_Reference"] = None
42724
42745
  _channel: Optional["scout_compute_api_ChannelSeries"] = None
42746
+ _derived: Optional["scout_compute_api_DerivedSeries"] = None
42725
42747
  _resample: Optional["scout_compute_api_EnumResampleSeries"] = None
42726
42748
  _time_range_filter: Optional["scout_compute_api_EnumTimeRangeFilterSeries"] = None
42727
42749
  _time_shift: Optional["scout_compute_api_EnumTimeShiftSeries"] = None
@@ -42736,6 +42758,7 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
42736
42758
  'aggregate': ConjureFieldDefinition('aggregate', scout_compute_api_AggregateEnumSeries),
42737
42759
  'raw': ConjureFieldDefinition('raw', scout_compute_api_Reference),
42738
42760
  'channel': ConjureFieldDefinition('channel', scout_compute_api_ChannelSeries),
42761
+ 'derived': ConjureFieldDefinition('derived', scout_compute_api_DerivedSeries),
42739
42762
  'resample': ConjureFieldDefinition('resample', scout_compute_api_EnumResampleSeries),
42740
42763
  'time_range_filter': ConjureFieldDefinition('timeRangeFilter', scout_compute_api_EnumTimeRangeFilterSeries),
42741
42764
  'time_shift': ConjureFieldDefinition('timeShift', scout_compute_api_EnumTimeShiftSeries),
@@ -42750,6 +42773,7 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
42750
42773
  aggregate: Optional["scout_compute_api_AggregateEnumSeries"] = None,
42751
42774
  raw: Optional["scout_compute_api_Reference"] = None,
42752
42775
  channel: Optional["scout_compute_api_ChannelSeries"] = None,
42776
+ derived: Optional["scout_compute_api_DerivedSeries"] = None,
42753
42777
  resample: Optional["scout_compute_api_EnumResampleSeries"] = None,
42754
42778
  time_range_filter: Optional["scout_compute_api_EnumTimeRangeFilterSeries"] = None,
42755
42779
  time_shift: Optional["scout_compute_api_EnumTimeShiftSeries"] = None,
@@ -42760,7 +42784,7 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
42760
42784
  type_of_union: Optional[str] = None
42761
42785
  ) -> None:
42762
42786
  if type_of_union is None:
42763
- if (aggregate is not None) + (raw is not None) + (channel is not None) + (resample is not None) + (time_range_filter is not None) + (time_shift is not None) + (union is not None) + (filter_transformation is not None) + (value_map is not None) + (select1d_array_index is not None) != 1:
42787
+ if (aggregate is not None) + (raw is not None) + (channel is not None) + (derived is not None) + (resample is not None) + (time_range_filter is not None) + (time_shift is not None) + (union is not None) + (filter_transformation is not None) + (value_map is not None) + (select1d_array_index is not None) != 1:
42764
42788
  raise ValueError('a union must contain a single member')
42765
42789
 
42766
42790
  if aggregate is not None:
@@ -42772,6 +42796,9 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
42772
42796
  if channel is not None:
42773
42797
  self._channel = channel
42774
42798
  self._type = 'channel'
42799
+ if derived is not None:
42800
+ self._derived = derived
42801
+ self._type = 'derived'
42775
42802
  if resample is not None:
42776
42803
  self._resample = resample
42777
42804
  self._type = 'resample'
@@ -42809,6 +42836,11 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
42809
42836
  raise ValueError('a union value must not be None')
42810
42837
  self._channel = channel
42811
42838
  self._type = 'channel'
42839
+ elif type_of_union == 'derived':
42840
+ if derived is None:
42841
+ raise ValueError('a union value must not be None')
42842
+ self._derived = derived
42843
+ self._type = 'derived'
42812
42844
  elif type_of_union == 'resample':
42813
42845
  if resample is None:
42814
42846
  raise ValueError('a union value must not be None')
@@ -42857,6 +42889,10 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
42857
42889
  def channel(self) -> Optional["scout_compute_api_ChannelSeries"]:
42858
42890
  return self._channel
42859
42891
 
42892
+ @builtins.property
42893
+ def derived(self) -> Optional["scout_compute_api_DerivedSeries"]:
42894
+ return self._derived
42895
+
42860
42896
  @builtins.property
42861
42897
  def resample(self) -> Optional["scout_compute_api_EnumResampleSeries"]:
42862
42898
  return self._resample
@@ -42894,6 +42930,8 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
42894
42930
  return visitor._raw(self.raw)
42895
42931
  if self._type == 'channel' and self.channel is not None:
42896
42932
  return visitor._channel(self.channel)
42933
+ if self._type == 'derived' and self.derived is not None:
42934
+ return visitor._derived(self.derived)
42897
42935
  if self._type == 'resample' and self.resample is not None:
42898
42936
  return visitor._resample(self.resample)
42899
42937
  if self._type == 'timeRangeFilter' and self.time_range_filter is not None:
@@ -42929,6 +42967,10 @@ class scout_compute_api_EnumSeriesVisitor:
42929
42967
  def _channel(self, channel: "scout_compute_api_ChannelSeries") -> Any:
42930
42968
  pass
42931
42969
 
42970
+ @abstractmethod
42971
+ def _derived(self, derived: "scout_compute_api_DerivedSeries") -> Any:
42972
+ pass
42973
+
42932
42974
  @abstractmethod
42933
42975
  def _resample(self, resample: "scout_compute_api_EnumResampleSeries") -> Any:
42934
42976
  pass
@@ -44556,6 +44598,7 @@ scout_compute_api_LogRegexFilterOperator.__module__ = "nominal_api.scout_compute
44556
44598
  class scout_compute_api_LogSeries(ConjureUnionType):
44557
44599
  _raw: Optional["scout_compute_api_Reference"] = None
44558
44600
  _channel: Optional["scout_compute_api_ChannelSeries"] = None
44601
+ _derived: Optional["scout_compute_api_DerivedSeries"] = None
44559
44602
  _union: Optional["scout_compute_api_LogUnionSeries"] = None
44560
44603
  _filter: Optional["scout_compute_api_LogFilterSeries"] = None
44561
44604
  _time_shift: Optional["scout_compute_api_LogTimeShiftSeries"] = None
@@ -44565,6 +44608,7 @@ class scout_compute_api_LogSeries(ConjureUnionType):
44565
44608
  return {
44566
44609
  'raw': ConjureFieldDefinition('raw', scout_compute_api_Reference),
44567
44610
  'channel': ConjureFieldDefinition('channel', scout_compute_api_ChannelSeries),
44611
+ 'derived': ConjureFieldDefinition('derived', scout_compute_api_DerivedSeries),
44568
44612
  'union': ConjureFieldDefinition('union', scout_compute_api_LogUnionSeries),
44569
44613
  'filter': ConjureFieldDefinition('filter', scout_compute_api_LogFilterSeries),
44570
44614
  'time_shift': ConjureFieldDefinition('timeShift', scout_compute_api_LogTimeShiftSeries)
@@ -44574,13 +44618,14 @@ class scout_compute_api_LogSeries(ConjureUnionType):
44574
44618
  self,
44575
44619
  raw: Optional["scout_compute_api_Reference"] = None,
44576
44620
  channel: Optional["scout_compute_api_ChannelSeries"] = None,
44621
+ derived: Optional["scout_compute_api_DerivedSeries"] = None,
44577
44622
  union: Optional["scout_compute_api_LogUnionSeries"] = None,
44578
44623
  filter: Optional["scout_compute_api_LogFilterSeries"] = None,
44579
44624
  time_shift: Optional["scout_compute_api_LogTimeShiftSeries"] = None,
44580
44625
  type_of_union: Optional[str] = None
44581
44626
  ) -> None:
44582
44627
  if type_of_union is None:
44583
- if (raw is not None) + (channel is not None) + (union is not None) + (filter is not None) + (time_shift is not None) != 1:
44628
+ if (raw is not None) + (channel is not None) + (derived is not None) + (union is not None) + (filter is not None) + (time_shift is not None) != 1:
44584
44629
  raise ValueError('a union must contain a single member')
44585
44630
 
44586
44631
  if raw is not None:
@@ -44589,6 +44634,9 @@ class scout_compute_api_LogSeries(ConjureUnionType):
44589
44634
  if channel is not None:
44590
44635
  self._channel = channel
44591
44636
  self._type = 'channel'
44637
+ if derived is not None:
44638
+ self._derived = derived
44639
+ self._type = 'derived'
44592
44640
  if union is not None:
44593
44641
  self._union = union
44594
44642
  self._type = 'union'
@@ -44609,6 +44657,11 @@ class scout_compute_api_LogSeries(ConjureUnionType):
44609
44657
  raise ValueError('a union value must not be None')
44610
44658
  self._channel = channel
44611
44659
  self._type = 'channel'
44660
+ elif type_of_union == 'derived':
44661
+ if derived is None:
44662
+ raise ValueError('a union value must not be None')
44663
+ self._derived = derived
44664
+ self._type = 'derived'
44612
44665
  elif type_of_union == 'union':
44613
44666
  if union is None:
44614
44667
  raise ValueError('a union value must not be None')
@@ -44633,6 +44686,10 @@ class scout_compute_api_LogSeries(ConjureUnionType):
44633
44686
  def channel(self) -> Optional["scout_compute_api_ChannelSeries"]:
44634
44687
  return self._channel
44635
44688
 
44689
+ @builtins.property
44690
+ def derived(self) -> Optional["scout_compute_api_DerivedSeries"]:
44691
+ return self._derived
44692
+
44636
44693
  @builtins.property
44637
44694
  def union(self) -> Optional["scout_compute_api_LogUnionSeries"]:
44638
44695
  return self._union
@@ -44652,6 +44709,8 @@ class scout_compute_api_LogSeries(ConjureUnionType):
44652
44709
  return visitor._raw(self.raw)
44653
44710
  if self._type == 'channel' and self.channel is not None:
44654
44711
  return visitor._channel(self.channel)
44712
+ if self._type == 'derived' and self.derived is not None:
44713
+ return visitor._derived(self.derived)
44655
44714
  if self._type == 'union' and self.union is not None:
44656
44715
  return visitor._union(self.union)
44657
44716
  if self._type == 'filter' and self.filter is not None:
@@ -44675,6 +44734,10 @@ class scout_compute_api_LogSeriesVisitor:
44675
44734
  def _channel(self, channel: "scout_compute_api_ChannelSeries") -> Any:
44676
44735
  pass
44677
44736
 
44737
+ @abstractmethod
44738
+ def _derived(self, derived: "scout_compute_api_DerivedSeries") -> Any:
44739
+ pass
44740
+
44678
44741
  @abstractmethod
44679
44742
  def _union(self, union: "scout_compute_api_LogUnionSeries") -> Any:
44680
44743
  pass
@@ -45267,22 +45330,25 @@ scout_compute_api_NotRanges.__module__ = "nominal_api.scout_compute_api"
45267
45330
  class scout_compute_api_Numeric1dArraySeries(ConjureUnionType):
45268
45331
  _channel: Optional["scout_compute_api_ChannelSeries"] = None
45269
45332
  _raw: Optional["scout_compute_api_Reference"] = None
45333
+ _derived: Optional["scout_compute_api_DerivedSeries"] = None
45270
45334
 
45271
45335
  @builtins.classmethod
45272
45336
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
45273
45337
  return {
45274
45338
  'channel': ConjureFieldDefinition('channel', scout_compute_api_ChannelSeries),
45275
- 'raw': ConjureFieldDefinition('raw', scout_compute_api_Reference)
45339
+ 'raw': ConjureFieldDefinition('raw', scout_compute_api_Reference),
45340
+ 'derived': ConjureFieldDefinition('derived', scout_compute_api_DerivedSeries)
45276
45341
  }
45277
45342
 
45278
45343
  def __init__(
45279
45344
  self,
45280
45345
  channel: Optional["scout_compute_api_ChannelSeries"] = None,
45281
45346
  raw: Optional["scout_compute_api_Reference"] = None,
45347
+ derived: Optional["scout_compute_api_DerivedSeries"] = None,
45282
45348
  type_of_union: Optional[str] = None
45283
45349
  ) -> None:
45284
45350
  if type_of_union is None:
45285
- if (channel is not None) + (raw is not None) != 1:
45351
+ if (channel is not None) + (raw is not None) + (derived is not None) != 1:
45286
45352
  raise ValueError('a union must contain a single member')
45287
45353
 
45288
45354
  if channel is not None:
@@ -45291,6 +45357,9 @@ class scout_compute_api_Numeric1dArraySeries(ConjureUnionType):
45291
45357
  if raw is not None:
45292
45358
  self._raw = raw
45293
45359
  self._type = 'raw'
45360
+ if derived is not None:
45361
+ self._derived = derived
45362
+ self._type = 'derived'
45294
45363
 
45295
45364
  elif type_of_union == 'channel':
45296
45365
  if channel is None:
@@ -45302,6 +45371,11 @@ class scout_compute_api_Numeric1dArraySeries(ConjureUnionType):
45302
45371
  raise ValueError('a union value must not be None')
45303
45372
  self._raw = raw
45304
45373
  self._type = 'raw'
45374
+ elif type_of_union == 'derived':
45375
+ if derived is None:
45376
+ raise ValueError('a union value must not be None')
45377
+ self._derived = derived
45378
+ self._type = 'derived'
45305
45379
 
45306
45380
  @builtins.property
45307
45381
  def channel(self) -> Optional["scout_compute_api_ChannelSeries"]:
@@ -45311,6 +45385,10 @@ class scout_compute_api_Numeric1dArraySeries(ConjureUnionType):
45311
45385
  def raw(self) -> Optional["scout_compute_api_Reference"]:
45312
45386
  return self._raw
45313
45387
 
45388
+ @builtins.property
45389
+ def derived(self) -> Optional["scout_compute_api_DerivedSeries"]:
45390
+ return self._derived
45391
+
45314
45392
  def accept(self, visitor) -> Any:
45315
45393
  if not isinstance(visitor, scout_compute_api_Numeric1dArraySeriesVisitor):
45316
45394
  raise ValueError('{} is not an instance of scout_compute_api_Numeric1dArraySeriesVisitor'.format(visitor.__class__.__name__))
@@ -45318,6 +45396,8 @@ class scout_compute_api_Numeric1dArraySeries(ConjureUnionType):
45318
45396
  return visitor._channel(self.channel)
45319
45397
  if self._type == 'raw' and self.raw is not None:
45320
45398
  return visitor._raw(self.raw)
45399
+ if self._type == 'derived' and self.derived is not None:
45400
+ return visitor._derived(self.derived)
45321
45401
 
45322
45402
 
45323
45403
  scout_compute_api_Numeric1dArraySeries.__name__ = "Numeric1dArraySeries"
@@ -45335,6 +45415,10 @@ class scout_compute_api_Numeric1dArraySeriesVisitor:
45335
45415
  def _raw(self, raw: "scout_compute_api_Reference") -> Any:
45336
45416
  pass
45337
45417
 
45418
+ @abstractmethod
45419
+ def _derived(self, derived: "scout_compute_api_DerivedSeries") -> Any:
45420
+ pass
45421
+
45338
45422
 
45339
45423
  scout_compute_api_Numeric1dArraySeriesVisitor.__name__ = "Numeric1dArraySeriesVisitor"
45340
45424
  scout_compute_api_Numeric1dArraySeriesVisitor.__qualname__ = "Numeric1dArraySeriesVisitor"
@@ -45828,6 +45912,7 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
45828
45912
  _product: Optional["scout_compute_api_ProductSeries"] = None
45829
45913
  _raw: Optional["scout_compute_api_Reference"] = None
45830
45914
  _channel: Optional["scout_compute_api_ChannelSeries"] = None
45915
+ _derived: Optional["scout_compute_api_DerivedSeries"] = None
45831
45916
  _resample: Optional["scout_compute_api_NumericResampleSeries"] = None
45832
45917
  _rolling_operation: Optional["scout_compute_api_RollingOperationSeries"] = None
45833
45918
  _signal_filter: Optional["scout_compute_api_SignalFilterSeries"] = None
@@ -45865,6 +45950,7 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
45865
45950
  'product': ConjureFieldDefinition('product', scout_compute_api_ProductSeries),
45866
45951
  'raw': ConjureFieldDefinition('raw', scout_compute_api_Reference),
45867
45952
  'channel': ConjureFieldDefinition('channel', scout_compute_api_ChannelSeries),
45953
+ 'derived': ConjureFieldDefinition('derived', scout_compute_api_DerivedSeries),
45868
45954
  'resample': ConjureFieldDefinition('resample', scout_compute_api_NumericResampleSeries),
45869
45955
  'rolling_operation': ConjureFieldDefinition('rollingOperation', scout_compute_api_RollingOperationSeries),
45870
45956
  'signal_filter': ConjureFieldDefinition('signalFilter', scout_compute_api_SignalFilterSeries),
@@ -45902,6 +45988,7 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
45902
45988
  product: Optional["scout_compute_api_ProductSeries"] = None,
45903
45989
  raw: Optional["scout_compute_api_Reference"] = None,
45904
45990
  channel: Optional["scout_compute_api_ChannelSeries"] = None,
45991
+ derived: Optional["scout_compute_api_DerivedSeries"] = None,
45905
45992
  resample: Optional["scout_compute_api_NumericResampleSeries"] = None,
45906
45993
  rolling_operation: Optional["scout_compute_api_RollingOperationSeries"] = None,
45907
45994
  signal_filter: Optional["scout_compute_api_SignalFilterSeries"] = None,
@@ -45924,7 +46011,7 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
45924
46011
  type_of_union: Optional[str] = None
45925
46012
  ) -> None:
45926
46013
  if type_of_union is None:
45927
- if (aggregate is not None) + (arithmetic is not None) + (bit_operation is not None) + (count_duplicate is not None) + (cumulative_sum is not None) + (derivative is not None) + (integral is not None) + (max is not None) + (mean is not None) + (min is not None) + (offset is not None) + (product is not None) + (raw is not None) + (channel is not None) + (resample is not None) + (rolling_operation is not None) + (signal_filter is not None) + (sum is not None) + (scale is not None) + (time_difference is not None) + (absolute_timestamp is not None) + (time_range_filter is not None) + (time_shift is not None) + (unary_arithmetic is not None) + (binary_arithmetic is not None) + (union is not None) + (unit_conversion is not None) + (value_difference is not None) + (filter_transformation is not None) + (threshold_filter is not None) + (approximate_filter is not None) + (select1d_array_index is not None) + (select_newest_points is not None) != 1:
46014
+ if (aggregate is not None) + (arithmetic is not None) + (bit_operation is not None) + (count_duplicate is not None) + (cumulative_sum is not None) + (derivative is not None) + (integral is not None) + (max is not None) + (mean is not None) + (min is not None) + (offset is not None) + (product is not None) + (raw is not None) + (channel is not None) + (derived is not None) + (resample is not None) + (rolling_operation is not None) + (signal_filter is not None) + (sum is not None) + (scale is not None) + (time_difference is not None) + (absolute_timestamp is not None) + (time_range_filter is not None) + (time_shift is not None) + (unary_arithmetic is not None) + (binary_arithmetic is not None) + (union is not None) + (unit_conversion is not None) + (value_difference is not None) + (filter_transformation is not None) + (threshold_filter is not None) + (approximate_filter is not None) + (select1d_array_index is not None) + (select_newest_points is not None) != 1:
45928
46015
  raise ValueError('a union must contain a single member')
45929
46016
 
45930
46017
  if aggregate is not None:
@@ -45969,6 +46056,9 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
45969
46056
  if channel is not None:
45970
46057
  self._channel = channel
45971
46058
  self._type = 'channel'
46059
+ if derived is not None:
46060
+ self._derived = derived
46061
+ self._type = 'derived'
45972
46062
  if resample is not None:
45973
46063
  self._resample = resample
45974
46064
  self._type = 'resample'
@@ -46097,6 +46187,11 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
46097
46187
  raise ValueError('a union value must not be None')
46098
46188
  self._channel = channel
46099
46189
  self._type = 'channel'
46190
+ elif type_of_union == 'derived':
46191
+ if derived is None:
46192
+ raise ValueError('a union value must not be None')
46193
+ self._derived = derived
46194
+ self._type = 'derived'
46100
46195
  elif type_of_union == 'resample':
46101
46196
  if resample is None:
46102
46197
  raise ValueError('a union value must not be None')
@@ -46249,6 +46344,10 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
46249
46344
  def channel(self) -> Optional["scout_compute_api_ChannelSeries"]:
46250
46345
  return self._channel
46251
46346
 
46347
+ @builtins.property
46348
+ def derived(self) -> Optional["scout_compute_api_DerivedSeries"]:
46349
+ return self._derived
46350
+
46252
46351
  @builtins.property
46253
46352
  def resample(self) -> Optional["scout_compute_api_NumericResampleSeries"]:
46254
46353
  return self._resample
@@ -46356,6 +46455,8 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
46356
46455
  return visitor._raw(self.raw)
46357
46456
  if self._type == 'channel' and self.channel is not None:
46358
46457
  return visitor._channel(self.channel)
46458
+ if self._type == 'derived' and self.derived is not None:
46459
+ return visitor._derived(self.derived)
46359
46460
  if self._type == 'resample' and self.resample is not None:
46360
46461
  return visitor._resample(self.resample)
46361
46462
  if self._type == 'rollingOperation' and self.rolling_operation is not None:
@@ -46459,6 +46560,10 @@ class scout_compute_api_NumericSeriesVisitor:
46459
46560
  def _channel(self, channel: "scout_compute_api_ChannelSeries") -> Any:
46460
46561
  pass
46461
46562
 
46563
+ @abstractmethod
46564
+ def _derived(self, derived: "scout_compute_api_DerivedSeries") -> Any:
46565
+ pass
46566
+
46462
46567
  @abstractmethod
46463
46568
  def _resample(self, resample: "scout_compute_api_NumericResampleSeries") -> Any:
46464
46569
  pass
@@ -47852,6 +47957,7 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
47852
47957
  _peak: Optional["scout_compute_api_PeakRanges"] = None
47853
47958
  _range_numeric_aggregation: Optional["scout_compute_api_RangesNumericAggregation"] = None
47854
47959
  _raw: Optional["scout_compute_api_Reference"] = None
47960
+ _derived: Optional["scout_compute_api_DerivedSeries"] = None
47855
47961
  _series_crossover_ranges_node: Optional["scout_compute_api_SeriesCrossoverRanges"] = None
47856
47962
  _series_equality_ranges_node: Optional["scout_compute_api_SeriesEqualityRanges"] = None
47857
47963
  _stability_detection: Optional["scout_compute_api_StabilityDetectionRanges"] = None
@@ -47875,6 +47981,7 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
47875
47981
  'peak': ConjureFieldDefinition('peak', scout_compute_api_PeakRanges),
47876
47982
  'range_numeric_aggregation': ConjureFieldDefinition('rangeNumericAggregation', scout_compute_api_RangesNumericAggregation),
47877
47983
  'raw': ConjureFieldDefinition('raw', scout_compute_api_Reference),
47984
+ 'derived': ConjureFieldDefinition('derived', scout_compute_api_DerivedSeries),
47878
47985
  'series_crossover_ranges_node': ConjureFieldDefinition('seriesCrossoverRangesNode', scout_compute_api_SeriesCrossoverRanges),
47879
47986
  'series_equality_ranges_node': ConjureFieldDefinition('seriesEqualityRangesNode', scout_compute_api_SeriesEqualityRanges),
47880
47987
  'stability_detection': ConjureFieldDefinition('stabilityDetection', scout_compute_api_StabilityDetectionRanges),
@@ -47898,6 +48005,7 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
47898
48005
  peak: Optional["scout_compute_api_PeakRanges"] = None,
47899
48006
  range_numeric_aggregation: Optional["scout_compute_api_RangesNumericAggregation"] = None,
47900
48007
  raw: Optional["scout_compute_api_Reference"] = None,
48008
+ derived: Optional["scout_compute_api_DerivedSeries"] = None,
47901
48009
  series_crossover_ranges_node: Optional["scout_compute_api_SeriesCrossoverRanges"] = None,
47902
48010
  series_equality_ranges_node: Optional["scout_compute_api_SeriesEqualityRanges"] = None,
47903
48011
  stability_detection: Optional["scout_compute_api_StabilityDetectionRanges"] = None,
@@ -47907,7 +48015,7 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
47907
48015
  type_of_union: Optional[str] = None
47908
48016
  ) -> None:
47909
48017
  if type_of_union is None:
47910
- if (approximate_threshold is not None) + (duration_filter is not None) + (enum_filter is not None) + (enum_series_equality_ranges_node is not None) + (events_search is not None) + (intersect_range is not None) + (literal_ranges is not None) + (min_max_threshold is not None) + (not_ is not None) + (on_change is not None) + (peak is not None) + (range_numeric_aggregation is not None) + (raw is not None) + (series_crossover_ranges_node is not None) + (series_equality_ranges_node is not None) + (stability_detection is not None) + (stale_range is not None) + (threshold is not None) + (union_range is not None) != 1:
48018
+ if (approximate_threshold is not None) + (duration_filter is not None) + (enum_filter is not None) + (enum_series_equality_ranges_node is not None) + (events_search is not None) + (intersect_range is not None) + (literal_ranges is not None) + (min_max_threshold is not None) + (not_ is not None) + (on_change is not None) + (peak is not None) + (range_numeric_aggregation is not None) + (raw is not None) + (derived is not None) + (series_crossover_ranges_node is not None) + (series_equality_ranges_node is not None) + (stability_detection is not None) + (stale_range is not None) + (threshold is not None) + (union_range is not None) != 1:
47911
48019
  raise ValueError('a union must contain a single member')
47912
48020
 
47913
48021
  if approximate_threshold is not None:
@@ -47949,6 +48057,9 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
47949
48057
  if raw is not None:
47950
48058
  self._raw = raw
47951
48059
  self._type = 'raw'
48060
+ if derived is not None:
48061
+ self._derived = derived
48062
+ self._type = 'derived'
47952
48063
  if series_crossover_ranges_node is not None:
47953
48064
  self._series_crossover_ranges_node = series_crossover_ranges_node
47954
48065
  self._type = 'seriesCrossoverRangesNode'
@@ -48033,6 +48144,11 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
48033
48144
  raise ValueError('a union value must not be None')
48034
48145
  self._raw = raw
48035
48146
  self._type = 'raw'
48147
+ elif type_of_union == 'derived':
48148
+ if derived is None:
48149
+ raise ValueError('a union value must not be None')
48150
+ self._derived = derived
48151
+ self._type = 'derived'
48036
48152
  elif type_of_union == 'seriesCrossoverRangesNode':
48037
48153
  if series_crossover_ranges_node is None:
48038
48154
  raise ValueError('a union value must not be None')
@@ -48118,6 +48234,10 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
48118
48234
  def raw(self) -> Optional["scout_compute_api_Reference"]:
48119
48235
  return self._raw
48120
48236
 
48237
+ @builtins.property
48238
+ def derived(self) -> Optional["scout_compute_api_DerivedSeries"]:
48239
+ return self._derived
48240
+
48121
48241
  @builtins.property
48122
48242
  def series_crossover_ranges_node(self) -> Optional["scout_compute_api_SeriesCrossoverRanges"]:
48123
48243
  return self._series_crossover_ranges_node
@@ -48173,6 +48293,8 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
48173
48293
  return visitor._range_numeric_aggregation(self.range_numeric_aggregation)
48174
48294
  if self._type == 'raw' and self.raw is not None:
48175
48295
  return visitor._raw(self.raw)
48296
+ if self._type == 'derived' and self.derived is not None:
48297
+ return visitor._derived(self.derived)
48176
48298
  if self._type == 'seriesCrossoverRangesNode' and self.series_crossover_ranges_node is not None:
48177
48299
  return visitor._series_crossover_ranges_node(self.series_crossover_ranges_node)
48178
48300
  if self._type == 'seriesEqualityRangesNode' and self.series_equality_ranges_node is not None:
@@ -48246,6 +48368,10 @@ class scout_compute_api_RangeSeriesVisitor:
48246
48368
  def _raw(self, raw: "scout_compute_api_Reference") -> Any:
48247
48369
  pass
48248
48370
 
48371
+ @abstractmethod
48372
+ def _derived(self, derived: "scout_compute_api_DerivedSeries") -> Any:
48373
+ pass
48374
+
48249
48375
  @abstractmethod
48250
48376
  def _series_crossover_ranges_node(self, series_crossover_ranges_node: "scout_compute_api_SeriesCrossoverRanges") -> Any:
48251
48377
  pass
@@ -79570,18 +79696,24 @@ class scout_workbookcommon_api_AssetSettings(ConjureBeanType):
79570
79696
  @builtins.classmethod
79571
79697
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
79572
79698
  return {
79573
- 'offset': ConjureFieldDefinition('offset', OptionalTypeWrapper[scout_rids_api_UserDuration])
79699
+ 'offset': ConjureFieldDefinition('offset', OptionalTypeWrapper[scout_rids_api_UserDuration]),
79700
+ 'data_scope_offsets': ConjureFieldDefinition('dataScopeOffsets', OptionalTypeWrapper[Dict[scout_api_DataSourceRefName, scout_rids_api_UserDuration]])
79574
79701
  }
79575
79702
 
79576
- __slots__: List[str] = ['_offset']
79703
+ __slots__: List[str] = ['_offset', '_data_scope_offsets']
79577
79704
 
79578
- def __init__(self, offset: Optional["scout_rids_api_UserDuration"] = None) -> None:
79705
+ def __init__(self, data_scope_offsets: Optional[Dict[str, "scout_rids_api_UserDuration"]] = None, offset: Optional["scout_rids_api_UserDuration"] = None) -> None:
79579
79706
  self._offset = offset
79707
+ self._data_scope_offsets = data_scope_offsets
79580
79708
 
79581
79709
  @builtins.property
79582
79710
  def offset(self) -> Optional["scout_rids_api_UserDuration"]:
79583
79711
  return self._offset
79584
79712
 
79713
+ @builtins.property
79714
+ def data_scope_offsets(self) -> Optional[Dict[str, "scout_rids_api_UserDuration"]]:
79715
+ return self._data_scope_offsets
79716
+
79585
79717
 
79586
79718
  scout_workbookcommon_api_AssetSettings.__name__ = "AssetSettings"
79587
79719
  scout_workbookcommon_api_AssetSettings.__qualname__ = "AssetSettings"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.781.0
3
+ Version: 0.783.0
4
4
  Requires-Python: >=3.8
5
5
  Requires-Dist: requests
6
6
  Requires-Dist: conjure-python-client<4,>=2.8.0
@@ -6,7 +6,7 @@ from setuptools import (
6
6
 
7
7
  setup(
8
8
  name='nominal-api',
9
- version='0.781.0',
9
+ version='0.783.0',
10
10
  python_requires='>=3.8',
11
11
  package_data={"": ["py.typed"]},
12
12
  packages=find_packages(),
File without changes