From 1eeb7c29f949ee86acb8608a5196339759ce773b Mon Sep 17 00:00:00 2001 From: Norbert Orzechowicz <1921950+norberttech@users.noreply.github.com> Date: Tue, 7 Jan 2025 11:41:09 -0600 Subject: [PATCH] Enforce using DSL in test suite (#1341) * Configure rector to enforce DSL in test suite * Fixed importing names * Added more rules to recto test config * Moved whole testsuite to use DSL instead of object oriented approach * Added rector to static analysis script * CS Fixes * Fixed static analyze workflow * Fixed static analyze workflow --- .github/workflows/static-analyze.yml | 3 + .php-cs-fixer.php | 3 + composer.json | 13 +- rector.src.php | 1 + rector.tests.php | 174 +++++++++++++- .../Avro/Tests/Integration/AvroTest.php | 7 +- .../CSV/Tests/Benchmark/CSVExtractorBench.php | 5 +- .../CSV/Tests/Benchmark/CSVLoaderBench.php | 7 +- .../Tests/Integration/CSVExtractorTest.php | 19 +- .../Tests/Context/Elasticsearch7Context.php | 5 +- .../Tests/Context/Elasticsearch8Context.php | 5 +- .../ElasticsearchIntegrationTest.php | 18 +- .../ElasticsearchExtractorTest.php | 81 ++----- .../ElasticsearchLoaderTest.php | 68 +----- .../Tests/Unit/HashIdFactoryTest.php | 6 +- .../Tests/Unit/GoogleSheetExtractorTest.php | 18 +- .../PsrHttpClientDynamicExtractorTest.php | 5 +- .../PsrHttpClientStaticExtractorTest.php | 5 +- .../Tests/Benchmark/JsonExtractorBench.php | 5 +- .../JSON/Tests/Benchmark/JsonLoaderBench.php | 7 +- .../JSONMachine/JsonExtractorTest.php | 9 +- .../JSON/Tests/Integration/JsonTest.php | 5 +- .../Logger/Tests/Unit/PsrLoggerLoaderTest.php | 10 +- .../Tests/Context/MeilisearchContext.php | 5 +- .../MeilisearchPHP/MailiSearchTest.php | 19 +- .../MeilisearchExtractorTest.php | 53 ++--- .../MeilisearchPHP/MeilisearchLoaderTest.php | 50 +--- .../Tests/Benchmark/ParquetExtractorBench.php | 5 +- .../Tests/Benchmark/ParquetLoaderBench.php | 7 +- .../Integration/ParquetExtractorTest.php | 9 +- .../Tests/Unit/FlowToParquetSchemaTest.php | 65 +++-- .../Tests/Unit/ParquetToFlowSchemaTest.php | 37 +-- .../Tests/Benchmark/TextExtractorBench.php | 5 +- .../Text/Tests/Benchmark/TextLoaderBench.php | 7 +- .../Tests/Integration/TextExtractorTest.php | 10 +- .../Text/Tests/Integration/TextTest.php | 13 +- .../XML/Tests/Benchmark/XmlExtractorBench.php | 5 +- .../Integration/XMLParserExtractorTest.php | 9 +- .../Integration/XMLReaderExtractorTest.php | 9 +- .../Unit/AzureBlobDestinationStreamTest.php | 5 +- .../Http/Tests/Unit/PSR7ProcessorTest.php | 8 +- src/core/etl/src/Flow/ETL/DSL/functions.php | 18 ++ .../ETL/Extractor/SortBucketsExtractor.php | 3 + .../RenameEntryTransformerBench.php | 5 +- .../Flow/ETL/Tests/Double/EmptyExtractor.php | 5 +- .../ETL/Tests/Fixtures/with-dataframe.php | 10 +- .../Integration/Cache/CacheBaseTestSuite.php | 3 +- .../Integration/DataFrame/GroupByTest.php | 9 +- .../Tests/Integration/DataFrame/LimitTest.php | 62 ++--- .../Tests/Integration/DataFrame/MapTest.php | 5 +- .../DataFrame/PartitioningTest.php | 3 +- .../Integration/DataFrame/RenameTest.php | 45 +--- .../Extractor/CacheExtractorTest.php | 9 +- .../Pipeline/BatchingPipelineTest.php | 11 +- .../Pipeline/CollectingPipelineTest.php | 5 +- .../Flow/ETL/Tests/Unit/DataFrameTest.php | 225 ++++-------------- .../ETL/Tests/Unit/ETLErrorHandlingTest.php | 66 +---- .../Unit/Extractor/ChainExtractorTest.php | 18 +- .../Unit/Extractor/ChunkExtractorTest.php | 6 +- .../Unit/Extractor/MemoryExtractorTest.php | 13 +- .../Unit/Extractor/PipelineExtractorTest.php | 13 +- .../Unit/Extractor/RowsExtractorTest.php | 11 +- .../Unit/Extractor/SequenceExtractorTest.php | 38 +-- .../Unit/Formatter/ASCII/ASCIIHeadersTest.php | 8 +- .../Tests/Unit/Formatter/ASCIITableTest.php | 38 +-- .../Flow/ETL/Tests/Unit/Function/AllTest.php | 12 +- .../Flow/ETL/Tests/Unit/Function/AnyTest.php | 10 +- .../Tests/Unit/Function/ArrayExpandTest.php | 16 +- .../Unit/Function/ArrayGetCollectionTest.php | 138 +++++------ .../ETL/Tests/Unit/Function/ArrayGetTest.php | 52 ++-- .../Unit/Function/ArrayKeyRenameTest.php | 57 ++--- .../Function/ArrayKeysStyleConverterTest.php | 47 ++-- .../Function/ArrayMergeCollectionTest.php | 46 ++-- .../Tests/Unit/Function/ArrayMergeTest.php | 19 +- .../Tests/Unit/Function/ArrayReverseTest.php | 10 +- .../ETL/Tests/Unit/Function/ArraySortTest.php | 58 +++-- .../Tests/Unit/Function/ArrayUnpackTest.php | 15 +- .../ETL/Tests/Unit/Function/AverageTest.php | 45 ++-- .../Unit/Function/BinaryComparisonsTest.php | 39 +-- .../Tests/Unit/Function/CapitalizeTest.php | 4 +- .../Flow/ETL/Tests/Unit/Function/CastTest.php | 10 +- .../ETL/Tests/Unit/Function/CollectTest.php | 10 +- .../Tests/Unit/Function/CollectUniqueTest.php | 10 +- .../ETL/Tests/Unit/Function/CombineTest.php | 12 +- .../ETL/Tests/Unit/Function/ConcatTest.php | 8 +- .../ETL/Tests/Unit/Function/CountTest.php | 39 ++- .../Function/DOMElementAttributeValueTest.php | 7 +- .../DOMElementAttributesCountTest.php | 9 +- .../Unit/Function/DOMElementValueTest.php | 7 +- .../Unit/Function/DateTimeFormatTest.php | 8 +- .../ETL/Tests/Unit/Function/DenseRankTest.php | 27 +-- .../ETL/Tests/Unit/Function/ExistsTest.php | 10 +- .../ETL/Tests/Unit/Function/FirstTest.php | 12 +- .../Flow/ETL/Tests/Unit/Function/HashTest.php | 12 +- .../Tests/Unit/Function/JsonDecodeTest.php | 8 +- .../Tests/Unit/Function/JsonEncodeTest.php | 10 +- .../Flow/ETL/Tests/Unit/Function/LastTest.php | 12 +- .../Flow/ETL/Tests/Unit/Function/MaxTest.php | 11 +- .../Flow/ETL/Tests/Unit/Function/NotTest.php | 8 +- .../Tests/Unit/Function/NumberFormatTest.php | 29 +-- .../ETL/Tests/Unit/Function/PowerTest.php | 8 +- .../Tests/Unit/Function/PregReplaceTest.php | 10 +- .../Flow/ETL/Tests/Unit/Function/RankTest.php | 27 +-- .../ETL/Tests/Unit/Function/RegexAllTest.php | 10 +- .../Tests/Unit/Function/RegexMatchAllTest.php | 12 +- .../Tests/Unit/Function/RegexMatchTest.php | 10 +- .../ETL/Tests/Unit/Function/RegexTest.php | 10 +- .../ETL/Tests/Unit/Function/RowNumberTest.php | 11 +- .../ETL/Tests/Unit/Function/SanitizeTest.php | 12 +- .../Flow/ETL/Tests/Unit/Function/SizeTest.php | 8 +- .../ETL/Tests/Unit/Function/SplitTest.php | 8 +- .../ETL/Tests/Unit/Function/SprintfTest.php | 6 +- .../ETL/Tests/Unit/Function/StrPadTest.php | 4 +- .../Tests/Unit/Function/StrReplaceTest.php | 6 +- .../Flow/ETL/Tests/Unit/Function/SumTest.php | 37 ++- .../ETL/Tests/Unit/Function/ToDateTest.php | 8 +- .../Tests/Unit/Function/ToDateTimeTest.php | 8 +- .../ETL/Tests/Unit/Function/ToLowerTest.php | 4 +- .../Tests/Unit/Function/ToTimeZoneTest.php | 8 +- .../ETL/Tests/Unit/Function/ToUpperTest.php | 4 +- .../Flow/ETL/Tests/Unit/Function/TrimTest.php | 8 +- .../Flow/ETL/Tests/Unit/Function/UlidTest.php | 14 +- .../Flow/ETL/Tests/Unit/Function/UuidTest.php | 31 +-- .../ETL/Tests/Unit/Function/XPathTest.php | 11 +- .../tests/Flow/ETL/Tests/Unit/GroupByTest.php | 11 +- .../Tests/Unit/Join/Comparison/AllTest.php | 11 +- .../Tests/Unit/Join/Comparison/AnyTest.php | 11 +- .../Tests/Unit/Join/Comparison/EqualTest.php | 11 +- .../Unit/Join/Comparison/IdenticalTest.php | 11 +- .../ETL/Tests/Unit/Join/ExpressionTest.php | 6 +- .../Tests/Unit/Loader/CallbackLoaderTest.php | 10 +- .../Tests/Unit/Loader/MemoryLoaderTest.php | 10 +- .../Loader/SchemaValidationLoaderTest.php | 26 +- .../Tests/Unit/Loader/StreamLoaderTest.php | 30 +-- .../Unit/Loader/TransformerLoaderTest.php | 9 +- .../PHP/Type/ArrayContentDetectorTest.php | 56 ++--- .../Unit/PHP/Type/Logical/ListTypeTest.php | 46 +--- .../Unit/PHP/Type/Logical/MapTypeTest.php | 48 +--- .../PHP/Type/Logical/StructureTypeTest.php | 27 +-- .../Unit/PHP/Type/Native/ArrayTypeTest.php | 7 +- .../Unit/PHP/Type/Native/CallableTypeTest.php | 5 +- .../Unit/PHP/Type/Native/NullTypeTest.php | 5 +- .../Unit/PHP/Type/Native/ResourceTypeTest.php | 5 +- .../Unit/Pipeline/LinkedPipelineTest.php | 18 +- .../ETL/Tests/Unit/Row/ArrayToRowTest.php | 13 +- .../Row/Comparator/NativeComparatorTest.php | 16 +- .../Flow/ETL/Tests/Unit/Row/EntriesTest.php | 115 ++++----- .../Tests/Unit/Row/Entry/BooleanEntryTest.php | 17 +- .../Tests/Unit/Row/Entry/DateEntryTest.php | 33 +-- .../Tests/Unit/Row/Entry/EnumEntryTest.php | 26 +- .../Tests/Unit/Row/Entry/FloatEntryTest.php | 22 +- .../Tests/Unit/Row/Entry/IntegerEntryTest.php | 19 +- .../Tests/Unit/Row/Entry/JsonEntryTest.php | 71 +++--- .../Unit/Row/Entry/JsonObjectEntryTest.php | 7 +- .../Tests/Unit/Row/Entry/ListEntryTest.php | 21 +- .../ETL/Tests/Unit/Row/Entry/MapEntryTest.php | 53 ++--- .../Unit/Row/Entry/StructureEntryTest.php | 143 +++-------- .../Tests/Unit/Row/Entry/TimeEntryTest.php | 23 +- .../Tests/Unit/Row/Entry/UuidEntryTest.php | 23 +- .../Unit/Row/Entry/XMLElementEntryTest.php | 17 +- .../ETL/Tests/Unit/Row/Entry/XMLEntryTest.php | 32 +-- .../ETL/Tests/Unit/Row/EntryReferenceTest.php | 14 +- .../Row/Factory/NativeEntryFactoryTest.php | 111 ++++----- .../Tests/Unit/Row/Schema/DefinitionTest.php | 125 +++++----- .../Formatter/ASCIISchemaFormatterTest.php | 51 +--- .../Row/Schema/SelectiveValidatorTest.php | 37 +-- .../Unit/Row/Schema/StrictValidatorTest.php | 48 +--- .../Flow/ETL/Tests/Unit/Row/SchemaTest.php | 21 +- .../etl/tests/Flow/ETL/Tests/Unit/RowTest.php | 103 +++----- .../ETL/Tests/Unit/Rows/ArrayToRowsTest.php | 24 +- .../tests/Flow/ETL/Tests/Unit/RowsTest.php | 34 ++- .../CallbackRowTransformerTest.php | 21 +- .../DropDuplicatesTransformerTest.php | 53 +---- .../DropEntriesTransformerTest.php | 7 +- ...EntryNameStyleConverterTransformerTest.php | 12 +- .../GroupToArrayTransformerTest.php | 31 +-- .../JoinEachRowsTransformerTest.php | 9 +- .../RenameEntryTransformerTest.php | 32 +-- .../ScalarFunctionFilterTransformerTest.php | 65 ++--- .../ScalarFunctionTransformerTest.php | 23 +- .../SelectEntriesTransformerTest.php | 9 +- .../Tests/Unit/CompressingSerializerTest.php | 32 +-- .../Tests/Unit/NativePHPSerializerTest.php | 32 +-- tools/rector/composer.json | 5 + tools/rector/composer.lock | 6 +- .../Flow/Tools/Rector/NewObjectToFunction.php | 18 ++ .../Tools/Rector/NewToFunctionCallRector.php | 79 ++++++ web/landing/resources/dsl.json | 2 +- 188 files changed, 1897 insertions(+), 2652 deletions(-) create mode 100644 tools/rector/src/Flow/Tools/Rector/NewObjectToFunction.php create mode 100644 tools/rector/src/Flow/Tools/Rector/NewToFunctionCallRector.php diff --git a/.github/workflows/static-analyze.yml b/.github/workflows/static-analyze.yml index e144893cd..0060b36e9 100644 --- a/.github/workflows/static-analyze.yml +++ b/.github/workflows/static-analyze.yml @@ -96,3 +96,6 @@ jobs: - name: "Static Analyze - PHPStan" run: "composer static:analyze:phpstan -- --error-format=github" + + - name: "Static Analyze - Rector" + run: "composer static:analyze:rector" \ No newline at end of file diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php index 1de9c1a09..fc7cc31af 100644 --- a/.php-cs-fixer.php +++ b/.php-cs-fixer.php @@ -16,9 +16,12 @@ __DIR__ . '/src/adapter/**/tests', __DIR__ . '/src/lib/**/src', __DIR__ . '/src/lib/**/tests', + __DIR__ . '/src/tools/**/src', + __DIR__ . '/src/tools/**/tests', __DIR__ . '/web/**/src', __DIR__ . '/web/**/tests', __DIR__ . '/examples', + __DIR__ . '/tools/rector/src', ]); if (!\file_exists(__DIR__ . '/var')) { diff --git a/composer.json b/composer.json index 64e43c902..620e49984 100644 --- a/composer.json +++ b/composer.json @@ -372,11 +372,16 @@ "test:monorepo": "tools/monorepo/vendor/bin/monorepo-builder validate", "static:analyze": [ "@static:analyze:cs-fixer", - "@static:analyze:phpstan" + "@static:analyze:phpstan", + "@static:analyze:rector" ], "static:analyze:phpstan": [ "tools/phpstan/vendor/bin/phpstan analyze -c phpstan.neon --memory-limit=-1" ], + "static:analyze:rector": [ + "tools/rector/vendor/bin/rector -c ./rector.tests.php --dry-run", + "tools/rector/vendor/bin/rector -c ./rector.src.php --dry-run" + ], "static:analyze:cs-fixer": [ "tools/cs-fixer/vendor/bin/php-cs-fixer fix --dry-run" ], @@ -413,7 +418,8 @@ "composer install --working-dir=./tools/monorepo", "composer install --working-dir=./tools/phpbench", "composer install --working-dir=./tools/phpstan", - "composer install --working-dir=./tools/phpunit" + "composer install --working-dir=./tools/phpunit", + "composer install --working-dir=./tools/rector" ], "tools:update": [ "composer update --working-dir=./tools/blackfire", @@ -423,7 +429,8 @@ "composer update --working-dir=./tools/monorepo", "composer update --working-dir=./tools/phpbench", "composer update --working-dir=./tools/phpstan", - "composer update --working-dir=./tools/phpunit" + "composer update --working-dir=./tools/phpunit", + "composer update --working-dir=./tools/rector" ] } } diff --git a/rector.src.php b/rector.src.php index 5ed1e6dad..9648647c3 100644 --- a/rector.src.php +++ b/rector.src.php @@ -13,6 +13,7 @@ __DIR__ . '/src/bridge/*/*/src', __DIR__ . '/src/tools/*/*/src', ]) + ->withCache(__DIR__ . '/var/rector/src') ->withSets([ LevelSetList::UP_TO_PHP_82 ]); \ No newline at end of file diff --git a/rector.tests.php b/rector.tests.php index e2d2d5846..aa03afb85 100644 --- a/rector.tests.php +++ b/rector.tests.php @@ -1,8 +1,56 @@ withPaths([ @@ -15,6 +63,130 @@ ->withSets([ LevelSetList::UP_TO_PHP_82 ]) + ->withConfiguredRule( + StaticCallToFuncCallRector::class, + [ + // Building Blocks + new StaticCallToFuncCall(Flow\ETL\Row::class, 'create', 'Flow\ETL\DSL\row'), + new StaticCallToFuncCall(Config::class, 'default', 'Flow\ETL\DSL\config'), + // Schema + new StaticCallToFuncCall(Definition::class, 'boolean', 'Flow\ETL\DSL\bool_schema'), + new StaticCallToFuncCall(Definition::class, 'date', 'Flow\ETL\DSL\date_schema'), + new StaticCallToFuncCall(Definition::class, 'datetime', 'Flow\ETL\DSL\datetime_schema'), + new StaticCallToFuncCall(Definition::class, 'enum', 'Flow\ETL\DSL\enum_schema'), + new StaticCallToFuncCall(Definition::class, 'float', 'Flow\ETL\DSL\float_schema'), + new StaticCallToFuncCall(Definition::class, 'integer', 'Flow\ETL\DSL\integer_schema'), + new StaticCallToFuncCall(Definition::class, 'json', 'Flow\ETL\DSL\json_schema'), + new StaticCallToFuncCall(Definition::class, 'list', 'Flow\ETL\DSL\list_schema'), + new StaticCallToFuncCall(Definition::class, 'map', 'Flow\ETL\DSL\map_schema'), + new StaticCallToFuncCall(Definition::class, 'string', 'Flow\ETL\DSL\string_schema'), + new StaticCallToFuncCall(Definition::class, 'structure', 'Flow\ETL\DSL\structure_schema'), + new StaticCallToFuncCall(Definition::class, 'time', 'Flow\ETL\DSL\time_schema'), + new StaticCallToFuncCall(Definition::class, 'uuid', 'Flow\ETL\DSL\uuid_schema'), + new StaticCallToFuncCall(Definition::class, 'xml', 'Flow\ETL\DSL\xml_schema'), + new StaticCallToFuncCall(Definition::class, 'xml_element', 'Flow\ETL\DSL\xml_element_schema'), + // Logical Types + new StaticCallToFuncCall(MapKey::class, 'integer', 'Flow\ETL\DSL\type_integer'), + new StaticCallToFuncCall(MapKey::class, 'string', 'Flow\ETL\DSL\type_string'), + new StaticCallToFuncCall(MapValue::class, 'boolean', 'Flow\ETL\DSL\type_boolean'), + new StaticCallToFuncCall(MapValue::class, 'datetime', 'Flow\ETL\DSL\type_datetime'), + new StaticCallToFuncCall(MapValue::class, 'float', 'Flow\ETL\DSL\type_float'), + new StaticCallToFuncCall(MapValue::class, 'integer', 'Flow\ETL\DSL\type_integer'), + new StaticCallToFuncCall(MapValue::class, 'json', 'Flow\ETL\DSL\type_json'), + new StaticCallToFuncCall(MapValue::class, 'list', 'Flow\ETL\DSL\type_list'), + new StaticCallToFuncCall(MapValue::class, 'map', 'Flow\ETL\DSL\type_map'), + new StaticCallToFuncCall(MapValue::class, 'object', 'Flow\ETL\DSL\type_object'), + new StaticCallToFuncCall(MapValue::class, 'string', 'Flow\ETL\DSL\type_string'), + new StaticCallToFuncCall(MapValue::class, 'structure', 'Flow\ETL\DSL\type_structure'), + new StaticCallToFuncCall(MapValue::class, 'uuid', 'Flow\ETL\DSL\type_uuid'), + new StaticCallToFuncCall(MapValue::class, 'xml', 'Flow\ETL\DSL\type_xml'), + new StaticCallToFuncCall(MapValue::class, 'xmlElement', 'Flow\ETL\DSL\type_xml_element'), + + new StaticCallToFuncCall(ListElement::class, 'boolean', 'Flow\ETL\DSL\type_boolean'), + new StaticCallToFuncCall(ListElement::class, 'datetime', 'Flow\ETL\DSL\type_datetime'), + new StaticCallToFuncCall(ListElement::class, 'float', 'Flow\ETL\DSL\type_float'), + new StaticCallToFuncCall(ListElement::class, 'integer', 'Flow\ETL\DSL\type_integer'), + new StaticCallToFuncCall(ListElement::class, 'json', 'Flow\ETL\DSL\type_json'), + new StaticCallToFuncCall(ListElement::class, 'list', 'Flow\ETL\DSL\type_list'), + new StaticCallToFuncCall(ListElement::class, 'map', 'Flow\ETL\DSL\type_map'), + new StaticCallToFuncCall(ListElement::class, 'object', 'Flow\ETL\DSL\type_object'), + new StaticCallToFuncCall(ListElement::class, 'string', 'Flow\ETL\DSL\type_string'), + new StaticCallToFuncCall(ListElement::class, 'structure', 'Flow\ETL\DSL\type_structure'), + new StaticCallToFuncCall(ListElement::class, 'uuid', 'Flow\ETL\DSL\type_uuid'), + new StaticCallToFuncCall(ListElement::class, 'xml', 'Flow\ETL\DSL\type_xml'), + new StaticCallToFuncCall(ListElement::class, 'xmlElement', 'Flow\ETL\DSL\type_xml_element'), + ] + ) + ->withConfiguredRule( + NewToFunctionCallRector::class, + [ + // Building Blocks + new NewObjectToFunction(Rows::class, 'Flow\ETL\DSL\rows'), + new NewObjectToFunction(Config::class, 'Flow\ETL\DSL\config'), + new NewObjectToFunction(FlowContext::class, 'Flow\ETL\DSL\flow_context'), + new NewObjectToFunction(Flow\ETL\Row\Schema::class, 'Flow\ETL\DSL\schema'), + + // Entries + new NewObjectToFunction(BooleanEntry::class, 'Flow\ETL\DSL\boolean_entry'), + new NewObjectToFunction(DateEntry::class, 'Flow\ETL\DSL\date_entry'), + new NewObjectToFunction(DatetimeEntry::class, 'Flow\ETL\DSL\datetime_entry'), + new NewObjectToFunction(EnumEntry::class, 'Flow\ETL\DSL\enum_entry'), + new NewObjectToFunction(FloatEntry::class, 'Flow\ETL\DSL\float_entry'), + new NewObjectToFunction(IntegerEntry::class, 'Flow\ETL\DSL\integer_entry'), + new NewObjectToFunction(JsonEntry::class, 'Flow\ETL\DSL\json_entry'), + new NewObjectToFunction(ListEntry::class, 'Flow\ETL\DSL\list_entry'), + new NewObjectToFunction(MapEntry::class, 'Flow\ETL\DSL\map_entry'), + new NewObjectToFunction(StringEntry::class, 'Flow\ETL\DSL\string_entry'), + new NewObjectToFunction(StructureEntry::class, 'Flow\ETL\DSL\structure_entry'), + new NewObjectToFunction(TimeEntry::class, 'Flow\ETL\DSL\time_entry'), + new NewObjectToFunction(UuidEntry::class, 'Flow\ETL\DSL\uuid_entry'), + new NewObjectToFunction(XMLElementEntry::class, 'Flow\ETL\DSL\xml_element_entry'), + new NewObjectToFunction(XMLEntry::class, 'Flow\ETL\DSL\xml_entry'), + + // Native Types + new NewObjectToFunction(ArrayType::class, 'Flow\ETL\DSL\type_array'), + new NewObjectToFunction(BooleanType::class, 'Flow\ETL\DSL\type_boolean'), + new NewObjectToFunction(CallableType::class, 'Flow\ETL\DSL\type_callable'), + new NewObjectToFunction(EnumType::class, 'Flow\ETL\DSL\type_enum'), + new NewObjectToFunction(FloatType::class, 'Flow\ETL\DSL\type_float'), + new NewObjectToFunction(IntegerType::class, 'Flow\ETL\DSL\type_integer'), + new NewObjectToFunction(NullType::class, 'Flow\ETL\DSL\type_null'), + new NewObjectToFunction(ObjectType::class, 'Flow\ETL\DSL\type_object'), + new NewObjectToFunction(ResourceType::class, 'Flow\ETL\DSL\type_resource'), + new NewObjectToFunction(StringType::class, 'Flow\ETL\DSL\type_string'), + + // Logical Types + new NewObjectToFunction(DateTimeType::class, 'Flow\ETL\DSL\type_datetime'), + new NewObjectToFunction(DateType::class, 'Flow\ETL\DSL\type_date'), + new NewObjectToFunction(JsonType::class, 'Flow\ETL\DSL\type_json'), + new NewObjectToFunction(ListType::class, 'Flow\ETL\DSL\type_list'), + new NewObjectToFunction(MapType::class, 'Flow\ETL\DSL\type_map'), + new NewObjectToFunction(StructureType::class, 'Flow\ETL\DSL\type_structure'), + new NewObjectToFunction(TimeType::class, 'Flow\ETL\DSL\type_time'), + new NewObjectToFunction(UuidType::class, 'Flow\ETL\DSL\type_uuid'), + new NewObjectToFunction(XMLElementType::class, 'Flow\ETL\DSL\type_xml_element'), + new NewObjectToFunction(XMLType::class, 'Flow\ETL\DSL\type_xml'), + new NewObjectToFunction(StructureElement::class, 'Flow\ETL\DSL\structure_element'), + + // Extractors + new NewObjectToFunction(Flow\ETL\Extractor\CacheExtractor::class, 'from_cache'), + new NewObjectToFunction(Flow\ETL\Extractor\RowsExtractor::class, 'from_rows'), + new NewObjectToFunction(Flow\ETL\Extractor\ArrayExtractor::class, 'from_array'), + new NewObjectToFunction(Flow\ETL\Extractor\ChainExtractor::class, 'from_all'), + new NewObjectToFunction(Flow\ETL\Extractor\MemoryExtractor::class, 'from_memory'), + new NewObjectToFunction(Flow\ETL\Extractor\ChunkExtractor::class, 'chunks_from'), + new NewObjectToFunction(Flow\ETL\Extractor\PipelineExtractor::class, 'from_pipeline'), + new NewObjectToFunction(Flow\ETL\Extractor\DataFrameExtractor::class, 'from_data_frame'), + + ] + ) ->withSkip([ RemoveParentCallWithoutParentRector::class - ]); \ No newline at end of file + ]) + ->withCache(__DIR__ . '/var/rector/tests') + ->withImportNames( + importNames: true, + importDocBlockNames: true, + importShortClasses: false, + removeUnusedImports: true + ); \ No newline at end of file diff --git a/src/adapter/etl-adapter-avro/tests/Flow/ETL/Adapter/Avro/Tests/Integration/AvroTest.php b/src/adapter/etl-adapter-avro/tests/Flow/ETL/Adapter/Avro/Tests/Integration/AvroTest.php index 9cf7b79cb..eb510103b 100644 --- a/src/adapter/etl-adapter-avro/tests/Flow/ETL/Adapter/Avro/Tests/Integration/AvroTest.php +++ b/src/adapter/etl-adapter-avro/tests/Flow/ETL/Adapter/Avro/Tests/Integration/AvroTest.php @@ -5,9 +5,10 @@ namespace Flow\ETL\Adapter\Avro\Tests\Integration; use function Flow\ETL\DSL\Adapter\Avro\{to_avro}; +use function Flow\ETL\DSL\{config, flow_context}; use Flow\ETL\Adapter\Avro\FlixTech\AvroExtractor; use Flow\ETL\Extractor\Signal; -use Flow\ETL\{Config, FlowContext, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; use Flow\Filesystem\Path; final class AvroTest extends FlowTestCase @@ -24,7 +25,7 @@ public function test_limit() : void self::assertCount( 2, - \iterator_to_array($extractor->extract(new FlowContext(Config::default()))) + \iterator_to_array($extractor->extract(flow_context(config()))) ); } @@ -32,7 +33,7 @@ public function test_signal_stop() : void { $extractor = new AvroExtractor(Path::realpath(__DIR__ . '/../Fixtures/orders_flow.avro')); - $generator = $extractor->extract(new FlowContext(Config::default())); + $generator = $extractor->extract(flow_context(config())); self::assertTrue($generator->valid()); $generator->next(); diff --git a/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Benchmark/CSVExtractorBench.php b/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Benchmark/CSVExtractorBench.php index 84c6306a6..d20dc8cf3 100644 --- a/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Benchmark/CSVExtractorBench.php +++ b/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Benchmark/CSVExtractorBench.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Adapter\CSV\Tests\Benchmark; use function Flow\ETL\Adapter\CSV\from_csv; -use Flow\ETL\{Config, FlowContext}; +use function Flow\ETL\DSL\{config, flow_context}; +use Flow\ETL\{FlowContext}; use PhpBench\Attributes\Groups; #[Groups(['extractor'])] @@ -15,7 +16,7 @@ public function __construct() { - $this->context = new FlowContext(Config::default()); + $this->context = flow_context(config()); } public function bench_extract_10k() : void diff --git a/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Benchmark/CSVLoaderBench.php b/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Benchmark/CSVLoaderBench.php index eb21dd5c4..e9884eac1 100644 --- a/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Benchmark/CSVLoaderBench.php +++ b/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Benchmark/CSVLoaderBench.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Adapter\CSV\Tests\Benchmark; use function Flow\ETL\Adapter\CSV\{from_csv, to_csv}; -use Flow\ETL\{Config, FlowContext, Rows}; +use function Flow\ETL\DSL\{config, flow_context}; +use Flow\ETL\{FlowContext, Rows}; use PhpBench\Attributes\Groups; #[Groups(['loader'])] @@ -19,9 +20,9 @@ final class CSVLoaderBench public function __construct() { - $this->context = new FlowContext(Config::default()); + $this->context = flow_context(config()); $this->outputPath = \tempnam(\sys_get_temp_dir(), 'etl_csv_loader_bench') . '.csv'; - $this->rows = new Rows(); + $this->rows = \Flow\ETL\DSL\rows(); foreach (from_csv(__DIR__ . '/Fixtures/orders_flow.csv')->extract($this->context) as $rows) { $this->rows = $this->rows->merge($rows); diff --git a/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Integration/CSVExtractorTest.php b/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Integration/CSVExtractorTest.php index 0464139e0..51d7a1006 100644 --- a/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Integration/CSVExtractorTest.php +++ b/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Integration/CSVExtractorTest.php @@ -5,10 +5,11 @@ namespace Flow\ETL\Adapter\CSV\Tests\Integration; use function Flow\ETL\Adapter\CSV\{from_csv}; +use function Flow\ETL\DSL\flow_context; use function Flow\ETL\DSL\{df, print_schema, ref}; use Flow\ETL\Adapter\CSV\CSVExtractor; use Flow\ETL\Extractor\Signal; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Config, Row, Rows, Tests\FlowTestCase}; use Flow\Filesystem\Path; final class CSVExtractorTest extends FlowTestCase @@ -41,7 +42,7 @@ public function test_extracting_csv_empty_columns_as_empty_strings() : void ], \array_map( static fn (Rows $r) => $r->toArray(), - \iterator_to_array($extractor->extract(new FlowContext(Config::builder()->putInputIntoRows()->build()))) + \iterator_to_array($extractor->extract(flow_context(Config::builder()->putInputIntoRows()->build()))) ) ); } @@ -71,7 +72,7 @@ public function test_extracting_csv_empty_columns_as_null() : void ], \array_map( static fn (Rows $r) => $r->toArray(), - \iterator_to_array($extractor->extract(new FlowContext(Config::default()))) + \iterator_to_array($extractor->extract(flow_context(\Flow\ETL\DSL\config()))) ) ); } @@ -93,7 +94,7 @@ public function test_extracting_csv_empty_headers() : void ], \array_map( fn (Rows $r) => $r->toArray(), - \iterator_to_array($extractor->extract(new FlowContext(Config::default()))) + \iterator_to_array($extractor->extract(flow_context(\Flow\ETL\DSL\config()))) ) ); } @@ -193,7 +194,7 @@ public function test_extracting_csv_files_without_header() : void $total = 0; /** @var Rows $rows */ - foreach ($extractor->extract(new FlowContext(Config::default())) as $rows) { + foreach ($extractor->extract(flow_context(\Flow\ETL\DSL\config())) as $rows) { $rows->each(function (Row $row) : void { $this->assertSame( ['e00', 'e01', 'e02', 'e03', 'e04', 'e05', 'e06', 'e07', 'e08', 'e09'], @@ -224,7 +225,7 @@ public function test_extracting_csv_with_more_columns_than_headers() : void $total = 0; /** @var Rows $rows */ - foreach ($extractor->extract(new FlowContext(Config::default())) as $rows) { + foreach ($extractor->extract(flow_context(\Flow\ETL\DSL\config())) as $rows) { $rows->each(function (Row $row) : void { $this->assertSame( ['id', 'name'], @@ -246,7 +247,7 @@ public function test_extracting_csv_with_more_headers_than_columns() : void $total = 0; /** @var Rows $rows */ - foreach ($extractor->extract(new FlowContext(Config::default())) as $rows) { + foreach ($extractor->extract(flow_context(\Flow\ETL\DSL\config())) as $rows) { $rows->each(function (Row $row) : void { $this->assertSame( ['id', 'name', 'active'], @@ -291,7 +292,7 @@ public function test_limit() : void self::assertCount( 2, - \iterator_to_array($extractor->extract(new FlowContext(Config::default()))) + \iterator_to_array($extractor->extract(flow_context(\Flow\ETL\DSL\config()))) ); } @@ -321,7 +322,7 @@ public function test_signal_stop() : void { $extractor = new CSVExtractor(Path::realpath(__DIR__ . '/../Fixtures/orders_flow.csv')); - $generator = $extractor->extract(new FlowContext(Config::default())); + $generator = $extractor->extract(flow_context(\Flow\ETL\DSL\config())); self::assertTrue($generator->valid()); $generator->next(); diff --git a/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Context/Elasticsearch7Context.php b/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Context/Elasticsearch7Context.php index 2682975ed..7e476e137 100644 --- a/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Context/Elasticsearch7Context.php +++ b/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Context/Elasticsearch7Context.php @@ -5,10 +5,11 @@ namespace Flow\ETL\Adapter\Elasticsearch\Tests\Context; use function Flow\ETL\Adapter\Elasticsearch\to_es_bulk_index; +use function Flow\ETL\DSL\{config, flow_context}; use Elasticsearch\Common\Exceptions\{BadRequest400Exception, Missing404Exception}; use Elasticsearch\{Client, ClientBuilder}; use Flow\ETL\Adapter\Elasticsearch\IdFactory; -use Flow\ETL\{Config, FlowContext, Rows}; +use Flow\ETL\{Rows}; final class Elasticsearch7Context implements ElasticsearchContext { @@ -71,7 +72,7 @@ public function loadRows(Rows $rows, string $index, IdFactory $idFactory) : void $idFactory, ['refresh' => true] ) - ->load($rows, new FlowContext(Config::default())); + ->load($rows, flow_context(config())); } public function version() : int diff --git a/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Context/Elasticsearch8Context.php b/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Context/Elasticsearch8Context.php index 61ea34084..6a2cb0161 100644 --- a/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Context/Elasticsearch8Context.php +++ b/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Context/Elasticsearch8Context.php @@ -5,10 +5,11 @@ namespace Flow\ETL\Adapter\Elasticsearch\Tests\Context; use function Flow\ETL\Adapter\Elasticsearch\to_es_bulk_index; +use function Flow\ETL\DSL\{config, flow_context}; use Elastic\Elasticsearch\Exception\ClientResponseException; use Elastic\Elasticsearch\{Client, ClientBuilder}; use Flow\ETL\Adapter\Elasticsearch\IdFactory; -use Flow\ETL\{Config, FlowContext, Rows}; +use Flow\ETL\{Rows}; final class Elasticsearch8Context implements ElasticsearchContext { @@ -71,7 +72,7 @@ public function loadRows(Rows $rows, string $index, IdFactory $idFactory) : void $idFactory, ['refresh' => true] ) - ->load($rows, new FlowContext(Config::default())); + ->load($rows, flow_context(config())); } public function version() : int diff --git a/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Integration/ElasticsearchIntegrationTest.php b/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Integration/ElasticsearchIntegrationTest.php index 311ddc187..d34f2294d 100644 --- a/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Integration/ElasticsearchIntegrationTest.php +++ b/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Integration/ElasticsearchIntegrationTest.php @@ -5,9 +5,10 @@ namespace Flow\ETL\Adapter\Elasticsearch\Tests\Integration; use function Flow\ETL\Adapter\Elasticsearch\{es_hits_to_rows, from_es, to_es_bulk_index}; +use function Flow\ETL\DSL\rows; use function Flow\ETL\DSL\{bool_entry, int_entry, string_entry}; use Flow\ETL\Adapter\Elasticsearch\EntryIdFactory\EntryIdFactory; -use Flow\ETL\{Flow, Row, Rows}; +use Flow\ETL\{Flow, Row}; final class ElasticsearchIntegrationTest extends ElasticsearchTestCase { @@ -34,17 +35,10 @@ protected function tearDown() : void public function test_loading_and_extraction_with_limit_and_transformation() : void { $this->elasticsearchContext->loadRows( - new Rows( - ...\array_map( - static fn (int $i) : Row => Row::create( - string_entry('id', \sha1((string) $i)), - int_entry('position', $i), - string_entry('name', 'id_' . $i), - bool_entry('active', false) - ), - \range(1, 2005) - ), - ), + rows(...\array_map( + static fn (int $i) : Row => \Flow\ETL\DSL\row(string_entry('id', \sha1((string) $i)), int_entry('position', $i), string_entry('name', 'id_' . $i), bool_entry('active', false)), + \range(1, 2005) + )), self::SOURCE_INDEX, new EntryIdFactory('id') ); diff --git a/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Integration/ElasticsearchPHP/ElasticsearchExtractorTest.php b/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Integration/ElasticsearchPHP/ElasticsearchExtractorTest.php index 90dc47189..784913797 100644 --- a/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Integration/ElasticsearchPHP/ElasticsearchExtractorTest.php +++ b/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Integration/ElasticsearchPHP/ElasticsearchExtractorTest.php @@ -6,14 +6,12 @@ use function Flow\ETL\Adapter\Elasticsearch\{es_hits_to_rows, from_es, to_es_bulk_index}; use function Flow\ETL\DSL\{bool_entry, df, generate_random_int, int_entry, string_entry}; +use function Flow\ETL\DSL\{config, flow_context, rows}; use Flow\ETL\Adapter\Elasticsearch\ElasticsearchPHP\DocumentDataSource; use Flow\ETL\Adapter\Elasticsearch\EntryIdFactory\EntryIdFactory; use Flow\ETL\{Adapter\Elasticsearch\Tests\Integration\ElasticsearchTestCase, - Config, Flow, - FlowContext, - Row, - Rows + Row }; final class ElasticsearchExtractorTest extends ElasticsearchTestCase @@ -37,17 +35,10 @@ public function test_empty_extraction() : void { $loader = to_es_bulk_index($this->elasticsearchContext->clientConfig(), self::INDEX_NAME, new EntryIdFactory('id'), ['refresh' => true]); - $loader->load(new Rows( - ...\array_map( - static fn (int $i) : Row => Row::create( - string_entry('id', \sha1((string) $i)), - int_entry('position', $i), - string_entry('name', 'id_' . $i), - bool_entry('active', (bool) generate_random_int(0, 1)) - ), - \range(1, 100) - ), - ), new FlowContext(Config::default())); + $loader->load(rows(...\array_map( + static fn (int $i) : Row => \Flow\ETL\DSL\row(string_entry('id', \sha1((string) $i)), int_entry('position', $i), string_entry('name', 'id_' . $i), bool_entry('active', (bool) generate_random_int(0, 1))), + \range(1, 100) + )), flow_context(config())); $params = [ 'index' => self::INDEX_NAME, @@ -77,17 +68,10 @@ public function test_extraction_index_with_from_and_size() : void { $loader = to_es_bulk_index($this->elasticsearchContext->clientConfig(), self::INDEX_NAME, new EntryIdFactory('id'), ['refresh' => true]); - $loader->load(new Rows( - ...\array_map( - static fn (int $i) : Row => Row::create( - string_entry('id', \sha1((string) $i)), - int_entry('position', $i), - string_entry('name', 'id_' . $i), - bool_entry('active', (bool) generate_random_int(0, 1)) - ), - \range(1, 2000) - ), - ), new FlowContext(Config::default())); + $loader->load(rows(...\array_map( + static fn (int $i) : Row => \Flow\ETL\DSL\row(string_entry('id', \sha1((string) $i)), int_entry('position', $i), string_entry('name', 'id_' . $i), bool_entry('active', (bool) generate_random_int(0, 1))), + \range(1, 2000) + )), flow_context(config())); $params = [ 'index' => self::INDEX_NAME, @@ -120,17 +104,10 @@ public function test_extraction_index_with_search_after() : void { $loader = to_es_bulk_index($this->elasticsearchContext->clientConfig(), self::INDEX_NAME, new EntryIdFactory('id'), ['refresh' => true]); - $loader->load(new Rows( - ...\array_map( - static fn (int $i) : Row => Row::create( - string_entry('id', \sha1((string) $i)), - int_entry('position', $i), - string_entry('name', 'id_' . $i), - bool_entry('active', (bool) generate_random_int(0, 1)) - ), - \range(1, 2005) - ), - ), new FlowContext(Config::default())); + $loader->load(rows(...\array_map( + static fn (int $i) : Row => \Flow\ETL\DSL\row(string_entry('id', \sha1((string) $i)), int_entry('position', $i), string_entry('name', 'id_' . $i), bool_entry('active', (bool) generate_random_int(0, 1))), + \range(1, 2005) + )), flow_context(config())); $params = [ 'index' => self::INDEX_NAME, @@ -156,17 +133,10 @@ public function test_extraction_index_with_search_after_with_point_in_time() : v { $loader = to_es_bulk_index($this->elasticsearchContext->clientConfig(), self::INDEX_NAME, new EntryIdFactory('id'), ['refresh' => true]); - $loader->load(new Rows( - ...\array_map( - static fn (int $i) : Row => Row::create( - string_entry('id', \sha1((string) $i)), - int_entry('position', $i), - string_entry('name', 'id_' . $i), - bool_entry('active', (bool) generate_random_int(0, 1)) - ), - \range(1, 2005) - ), - ), new FlowContext(Config::default())); + $loader->load(rows(...\array_map( + static fn (int $i) : Row => \Flow\ETL\DSL\row(string_entry('id', \sha1((string) $i)), int_entry('position', $i), string_entry('name', 'id_' . $i), bool_entry('active', (bool) generate_random_int(0, 1))), + \range(1, 2005) + )), flow_context(config())); $params = [ 'index' => self::INDEX_NAME, @@ -197,17 +167,10 @@ public function test_extraction_whole_index_with_point_in_time() : void { $loader = to_es_bulk_index($this->elasticsearchContext->clientConfig(), self::INDEX_NAME, new EntryIdFactory('id'), ['refresh' => true]); - $loader->load(new Rows( - ...\array_map( - static fn (int $i) : Row => Row::create( - string_entry('id', \sha1((string) $i)), - int_entry('position', $i), - string_entry('name', 'id_' . $i), - bool_entry('active', (bool) generate_random_int(0, 1)) - ), - \range(1, 2005) - ), - ), new FlowContext(Config::default())); + $loader->load(rows(...\array_map( + static fn (int $i) : Row => \Flow\ETL\DSL\row(string_entry('id', \sha1((string) $i)), int_entry('position', $i), string_entry('name', 'id_' . $i), bool_entry('active', (bool) generate_random_int(0, 1))), + \range(1, 2005) + )), flow_context(config())); $params = [ 'index' => self::INDEX_NAME, diff --git a/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Integration/ElasticsearchPHP/ElasticsearchLoaderTest.php b/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Integration/ElasticsearchPHP/ElasticsearchLoaderTest.php index 6d4cfea96..686eb04d8 100644 --- a/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Integration/ElasticsearchPHP/ElasticsearchLoaderTest.php +++ b/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Integration/ElasticsearchPHP/ElasticsearchLoaderTest.php @@ -5,8 +5,11 @@ namespace Flow\ETL\Adapter\Elasticsearch\Tests\Integration\ElasticsearchPHP; use function Flow\ETL\Adapter\Elasticsearch\{entry_id_factory, hash_id_factory, to_es_bulk_index, to_es_bulk_update}; +use function Flow\ETL\DSL\{config, row, rows}; +use function Flow\ETL\DSL\{flow_context, integer_entry}; use function Flow\ETL\DSL\{generate_random_string, string_entry}; -use Flow\ETL\{Adapter\Elasticsearch\Tests\Integration\ElasticsearchTestCase, Config, FlowContext, Row, Rows}; +use Flow\ETL\Row\Entry\{DateTimeEntry, JsonEntry}; +use Flow\ETL\{Adapter\Elasticsearch\Tests\Integration\ElasticsearchTestCase}; final class ElasticsearchLoaderTest extends ElasticsearchTestCase { @@ -28,7 +31,7 @@ public function test_empty_rows() : void { $loader = to_es_bulk_index($this->elasticsearchContext->clientConfig(), self::INDEX_NAME, entry_id_factory('id'), ['refresh' => true]); - $loader->load(new Rows(), new FlowContext(Config::default())); + $loader->load(rows(), flow_context(config())); $params = [ 'index' => self::INDEX_NAME, @@ -48,24 +51,7 @@ public function test_integration_with_entry_factory() : void { $loader = to_es_bulk_index($this->elasticsearchContext->clientConfig(), self::INDEX_NAME, entry_id_factory('id'), ['refresh' => true]); - $loader->load(new Rows( - Row::create( - string_entry('id', \sha1('id' . generate_random_string())), - string_entry('name', 'Łukasz') - ), - Row::create( - string_entry('id', \sha1('id' . generate_random_string())), - string_entry('name', 'Norbert') - ), - Row::create( - string_entry('id', \sha1('id' . generate_random_string())), - string_entry('name', 'Dawid') - ), - Row::create( - string_entry('id', \sha1('id' . generate_random_string())), - string_entry('name', 'Tomek') - ), - ), new FlowContext(Config::default())); + $loader->load(rows(row(string_entry('id', \sha1('id' . generate_random_string())), string_entry('name', 'Łukasz')), row(string_entry('id', \sha1('id' . generate_random_string())), string_entry('name', 'Norbert')), row(string_entry('id', \sha1('id' . generate_random_string())), string_entry('name', 'Dawid')), row(string_entry('id', \sha1('id' . generate_random_string())), string_entry('name', 'Tomek'))), flow_context(config())); $params = [ 'index' => self::INDEX_NAME, @@ -90,12 +76,7 @@ public function test_integration_with_json_entry() : void { $loader = to_es_bulk_index($this->elasticsearchContext->clientConfig(), self::INDEX_NAME, hash_id_factory('id'), ['refresh' => true]); - $loader->load(new Rows( - Row::create( - new Row\Entry\IntegerEntry('id', 1), - Row\Entry\JsonEntry::object('json', ['foo' => 'bar']) - ), - ), new FlowContext(Config::default())); + $loader->load(rows(row(integer_entry('id', 1), JsonEntry::object('json', ['foo' => 'bar']))), flow_context(config())); $params = [ 'index' => self::INDEX_NAME, @@ -119,23 +100,11 @@ public function test_integration_with_partial_update_id_factory() : void { $insertLoader = to_es_bulk_index($this->elasticsearchContext->clientConfig(), self::INDEX_NAME, hash_id_factory('id'), ['refresh' => true]); - $insertLoader->load(new Rows( - Row::create( - new Row\Entry\IntegerEntry('id', 1), - string_entry('name', 'Some Name'), - string_entry('status', 'NEW'), - new Row\Entry\DateTimeEntry('updated_at', new \DateTimeImmutable('2022-01-01 00:00:00')) - ), - ), new FlowContext(Config::default())); + $insertLoader->load(rows(row(integer_entry('id', 1), string_entry('name', 'Some Name'), string_entry('status', 'NEW'), new DateTimeEntry('updated_at', new \DateTimeImmutable('2022-01-01 00:00:00')))), flow_context(config())); $updateLoader = to_es_bulk_update($this->elasticsearchContext->clientConfig(), self::INDEX_NAME, hash_id_factory('id'), ['refresh' => true]); - $updateLoader->load(new Rows( - Row::create( - new Row\Entry\IntegerEntry('id', 1), - string_entry('name', 'Other Name'), - ), - ), new FlowContext(Config::default())); + $updateLoader->load(rows(row(integer_entry('id', 1), string_entry('name', 'Other Name'))), flow_context(config())); $params = [ 'index' => self::INDEX_NAME, @@ -173,24 +142,7 @@ public function test_integration_with_sha1_id_factory() : void { $loader = to_es_bulk_index($this->elasticsearchContext->clientConfig(), self::INDEX_NAME, hash_id_factory('id'), ['refresh' => true]); - $loader->load(new Rows( - Row::create( - new Row\Entry\IntegerEntry('id', 1), - string_entry('name', 'Łukasz') - ), - Row::create( - new Row\Entry\IntegerEntry('id', 2), - string_entry('name', 'Norbert') - ), - Row::create( - new Row\Entry\IntegerEntry('id', 3), - string_entry('name', 'Dawid') - ), - Row::create( - new Row\Entry\IntegerEntry('id', 4), - string_entry('name', 'Tomek') - ), - ), new FlowContext(Config::default())); + $loader->load(rows(row(integer_entry('id', 1), string_entry('name', 'Łukasz')), row(integer_entry('id', 2), string_entry('name', 'Norbert')), row(integer_entry('id', 3), string_entry('name', 'Dawid')), row(integer_entry('id', 4), string_entry('name', 'Tomek'))), flow_context(config())); $params = [ 'index' => self::INDEX_NAME, diff --git a/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Unit/HashIdFactoryTest.php b/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Unit/HashIdFactoryTest.php index ff1189a66..de9fe01e7 100644 --- a/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Unit/HashIdFactoryTest.php +++ b/src/adapter/etl-adapter-elasticsearch/tests/Flow/ETL/Adapter/Elasticsearch/Tests/Unit/HashIdFactoryTest.php @@ -4,10 +4,10 @@ namespace Flow\ETL\Adapter\Elasticsearch\Tests\Unit; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{str_entry, string_entry}; use Flow\ETL\Adapter\Elasticsearch\EntryIdFactory\HashIdFactory; use Flow\ETL\Hash\NativePHPHash; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class HashIdFactoryTest extends FlowTestCase @@ -22,7 +22,7 @@ public function test_create_row() : void \hash('xxh128', 'John:Doe') ), $factory->create( - Row::create(str_entry('first_name', 'John'), str_entry('last_name', 'Doe')) + row(str_entry('first_name', 'John'), str_entry('last_name', 'Doe')) ) ); } @@ -37,7 +37,7 @@ public function test_create_row_with_different_hash() : void \sha1('John:Doe') ), $factory->create( - Row::create(str_entry('first_name', 'John'), str_entry('last_name', 'Doe')) + row(str_entry('first_name', 'John'), str_entry('last_name', 'Doe')) ) ); } diff --git a/src/adapter/etl-adapter-google-sheet/tests/Flow/ETL/Adapter/GoogleSheet/Tests/Unit/GoogleSheetExtractorTest.php b/src/adapter/etl-adapter-google-sheet/tests/Flow/ETL/Adapter/GoogleSheet/Tests/Unit/GoogleSheetExtractorTest.php index dc861b132..d1f4dbfa0 100644 --- a/src/adapter/etl-adapter-google-sheet/tests/Flow/ETL/Adapter/GoogleSheet/Tests/Unit/GoogleSheetExtractorTest.php +++ b/src/adapter/etl-adapter-google-sheet/tests/Flow/ETL/Adapter/GoogleSheet/Tests/Unit/GoogleSheetExtractorTest.php @@ -5,11 +5,13 @@ namespace Flow\ETL\Adapter\GoogleSheet\Tests\Unit; use function Flow\ETL\Adapter\GoogleSheet\from_google_sheet_columns; +use function Flow\ETL\DSL\{flow_context, row}; use function Flow\ETL\DSL\{str_entry, string_entry}; use Flow\ETL\Exception\InvalidArgumentException; -use Flow\ETL\{Config\ConfigBuilder, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Config\ConfigBuilder, Rows, Tests\FlowTestCase}; use Google\Service\Sheets; use Google\Service\Sheets\Resource\SpreadsheetsValues; +use Google\Service\Sheets\ValueRange; final class GoogleSheetExtractorTest extends FlowTestCase { @@ -26,12 +28,12 @@ public function test_its_stop_fetching_data_if_processed_row_count_is_less_then_ ); $spreadSheetIdEntry = string_entry('_spread_sheet_id', $spreadSheetId); $sheetNameEntry = string_entry('_sheet_name', $sheetName); - $firstValueRangeMock = $this->createMock(Sheets\ValueRange::class); + $firstValueRangeMock = $this->createMock(ValueRange::class); $firstValueRangeMock->method('getValues')->willReturn([ ['header'], ['row1'], ]); - $secondValueRangeMock = $this->createMock(Sheets\ValueRange::class); + $secondValueRangeMock = $this->createMock(ValueRange::class); $secondValueRangeMock->method('getValues')->willReturn([ ['row2'], ]); @@ -42,12 +44,12 @@ public function test_its_stop_fetching_data_if_processed_row_count_is_less_then_ ->willReturnOnConsecutiveCalls($firstValueRangeMock, $secondValueRangeMock); /** @var array $rowsArray */ - $rowsArray = \iterator_to_array($extractor->extract(new FlowContext((new ConfigBuilder())->putInputIntoRows()->build()))); + $rowsArray = \iterator_to_array($extractor->extract(flow_context((new ConfigBuilder())->putInputIntoRows()->build()))); self::assertCount(2, $rowsArray); self::assertSame(1, $rowsArray[0]->count()); - self::assertEquals(Row::create($sheetNameEntry, $spreadSheetIdEntry, str_entry('header', 'row1')), $rowsArray[0]->first()); + self::assertEquals(row($sheetNameEntry, $spreadSheetIdEntry, str_entry('header', 'row1')), $rowsArray[0]->first()); self::assertSame(1, $rowsArray[1]->count()); - self::assertEquals(Row::create($sheetNameEntry, $spreadSheetIdEntry, str_entry('header', 'row2')), $rowsArray[1]->first()); + self::assertEquals(row($sheetNameEntry, $spreadSheetIdEntry, str_entry('header', 'row2')), $rowsArray[1]->first()); } public function test_rows_in_batch_must_be_positive_integer() : void @@ -77,13 +79,13 @@ public function test_works_for_no_data() : void true, 20 ); - $ValueRangeMock = $this->createMock(Sheets\ValueRange::class); + $ValueRangeMock = $this->createMock(ValueRange::class); $ValueRangeMock->method('getValues')->willReturn(null); $service->spreadsheets_values = ($spreadsheetsValues = $this->createMock(SpreadsheetsValues::class)); $spreadsheetsValues->method('get')->willReturn($ValueRangeMock); /** @var array $rowsArray */ - $rowsArray = \iterator_to_array($extractor->extract(new FlowContext((new ConfigBuilder())->build()))); + $rowsArray = \iterator_to_array($extractor->extract(flow_context((new ConfigBuilder())->build()))); self::assertCount(0, $rowsArray); } } diff --git a/src/adapter/etl-adapter-http/tests/Flow/ETL/Adapter/HTTP/Tests/Integration/PsrHttpClientDynamicExtractorTest.php b/src/adapter/etl-adapter-http/tests/Flow/ETL/Adapter/HTTP/Tests/Integration/PsrHttpClientDynamicExtractorTest.php index 5bec7c598..cfc3f8909 100644 --- a/src/adapter/etl-adapter-http/tests/Flow/ETL/Adapter/HTTP/Tests/Integration/PsrHttpClientDynamicExtractorTest.php +++ b/src/adapter/etl-adapter-http/tests/Flow/ETL/Adapter/HTTP/Tests/Integration/PsrHttpClientDynamicExtractorTest.php @@ -4,9 +4,10 @@ namespace Flow\ETL\Adapter\HTTP\Tests\Integration; +use function Flow\ETL\DSL\{config, flow_context}; use Flow\ETL\Adapter\Http\DynamicExtractor\NextRequestFactory; use Flow\ETL\Adapter\Http\PsrHttpClientDynamicExtractor; -use Flow\ETL\{Config, FlowContext, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; use Http\Mock\Client; use Nyholm\Psr7\Factory\Psr17Factory; use Nyholm\Psr7\Response; @@ -41,7 +42,7 @@ public function create(?ResponseInterface $previousResponse = null) : ?RequestIn } }); - $rows = $extractor->extract(new FlowContext(Config::default())); + $rows = $extractor->extract(flow_context(config())); $body = \json_decode((string) $rows->current()->first()->valueOf('response_body'), true, 512, JSON_THROW_ON_ERROR); diff --git a/src/adapter/etl-adapter-http/tests/Flow/ETL/Adapter/HTTP/Tests/Integration/PsrHttpClientStaticExtractorTest.php b/src/adapter/etl-adapter-http/tests/Flow/ETL/Adapter/HTTP/Tests/Integration/PsrHttpClientStaticExtractorTest.php index fab92207b..28a2fa0fb 100644 --- a/src/adapter/etl-adapter-http/tests/Flow/ETL/Adapter/HTTP/Tests/Integration/PsrHttpClientStaticExtractorTest.php +++ b/src/adapter/etl-adapter-http/tests/Flow/ETL/Adapter/HTTP/Tests/Integration/PsrHttpClientStaticExtractorTest.php @@ -4,8 +4,9 @@ namespace Flow\ETL\Adapter\HTTP\Tests\Integration; +use function Flow\ETL\DSL\{config, flow_context}; use Flow\ETL\Adapter\Http\PsrHttpClientStaticExtractor; -use Flow\ETL\{Config, FlowContext, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Rows, Tests\FlowTestCase}; use Http\Mock\Client; use Nyholm\Psr7\Factory\Psr17Factory; use Nyholm\Psr7\Response; @@ -37,7 +38,7 @@ public function test_http_extractor() : void $extractor = new PsrHttpClientStaticExtractor($psr18Client, $requests()); - $rowsGenerator = $extractor->extract(new FlowContext(Config::default())); + $rowsGenerator = $extractor->extract(flow_context(config())); /** @var Rows $norbertRows */ $norbertRows = $rowsGenerator->current(); diff --git a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Benchmark/JsonExtractorBench.php b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Benchmark/JsonExtractorBench.php index 58aaadb1b..747b6088e 100644 --- a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Benchmark/JsonExtractorBench.php +++ b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Benchmark/JsonExtractorBench.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Adapter\JSON\Tests\Benchmark; use function Flow\ETL\Adapter\JSON\from_json; -use Flow\ETL\{Config, FlowContext}; +use function Flow\ETL\DSL\{config, flow_context}; +use Flow\ETL\{FlowContext}; use PhpBench\Attributes\Groups; #[Groups(['extractor'])] @@ -15,7 +16,7 @@ public function __construct() { - $this->context = new FlowContext(Config::default()); + $this->context = flow_context(config()); } public function bench_extract_10k() : void diff --git a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Benchmark/JsonLoaderBench.php b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Benchmark/JsonLoaderBench.php index f548b7d9b..f816ea37b 100644 --- a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Benchmark/JsonLoaderBench.php +++ b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Benchmark/JsonLoaderBench.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Adapter\JSON\Tests\Benchmark; use function Flow\ETL\Adapter\JSON\{from_json, to_json}; -use Flow\ETL\{Config, FlowContext, Rows}; +use function Flow\ETL\DSL\{config, flow_context}; +use Flow\ETL\{FlowContext, Rows}; use PhpBench\Attributes\Groups; #[Groups(['loader'])] @@ -19,9 +20,9 @@ final class JsonLoaderBench public function __construct() { - $this->context = new FlowContext(Config::default()); + $this->context = flow_context(config()); $this->outputPath = \tempnam(\sys_get_temp_dir(), 'etl_json_loader_bench') . '.json'; - $this->rows = new Rows(); + $this->rows = \Flow\ETL\DSL\rows(); foreach (from_json(__DIR__ . '/../Fixtures/orders_flow.json')->extract($this->context) as $rows) { $this->rows = $this->rows->merge($rows); diff --git a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JSONMachine/JsonExtractorTest.php b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JSONMachine/JsonExtractorTest.php index 1c59ce8bf..c476a1111 100644 --- a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JSONMachine/JsonExtractorTest.php +++ b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JSONMachine/JsonExtractorTest.php @@ -5,10 +5,11 @@ namespace Flow\ETL\Adapter\JSON\Tests\Integration\JSONMachine; use function Flow\ETL\Adapter\JSON\{from_json}; +use function Flow\ETL\DSL\flow_context; use function Flow\ETL\DSL\{df, print_schema}; use Flow\ETL\Adapter\JSON\JSONMachine\JsonExtractor; use Flow\ETL\Extractor\Signal; -use Flow\ETL\{Config, Flow, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Config, Flow, Row, Rows, Tests\FlowTestCase}; use Flow\Filesystem\Path; final class JsonExtractorTest extends FlowTestCase @@ -108,7 +109,7 @@ public function test_extracting_json_from_local_file_string_uri() : void $total = 0; /** @var Rows $rows */ - foreach ($extractor->extract(new FlowContext(Config::default())) as $rows) { + foreach ($extractor->extract(flow_context(\Flow\ETL\DSL\config())) as $rows) { $rows->each(function (Row $row) : void { $this->assertSame( [ @@ -135,7 +136,7 @@ public function test_limit() : void self::assertCount( 2, - \iterator_to_array($extractor->extract(new FlowContext(Config::default()))) + \iterator_to_array($extractor->extract(flow_context(\Flow\ETL\DSL\config()))) ); } @@ -143,7 +144,7 @@ public function test_signal_stop() : void { $extractor = new JsonExtractor(\Flow\Filesystem\DSL\path(__DIR__ . '/../../Fixtures/timezones.json')); - $generator = $extractor->extract(new FlowContext(Config::default())); + $generator = $extractor->extract(flow_context(\Flow\ETL\DSL\config())); self::assertTrue($generator->valid()); $generator->next(); diff --git a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JsonTest.php b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JsonTest.php index dd954b15b..d969b272e 100644 --- a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JsonTest.php +++ b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JsonTest.php @@ -7,10 +7,11 @@ use function Flow\ETL\Adapter\JSON\from_json; use function Flow\ETL\Adapter\Json\to_json; use function Flow\ETL\DSL\{average, df, from_array, overwrite, ref}; +use function Flow\ETL\DSL\{config, flow_context, rows}; use function Flow\Filesystem\DSL\path; use Flow\ETL\Adapter\JSON\JsonLoader; use Flow\ETL\Tests\Double\FakeExtractor; -use Flow\ETL\{Config, FlowContext, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class JsonTest extends FlowTestCase { @@ -41,7 +42,7 @@ public function test_json_loader_loading_empty_string() : void { $loader = new JsonLoader(path($path = __DIR__ . '/var/test_json_loader_loading_empty_string.json')); - $loader->load(new Rows(), $context = new FlowContext(Config::default())); + $loader->load(rows(), $context = flow_context(config())); $loader->closure($context); diff --git a/src/adapter/etl-adapter-logger/tests/Flow/ETL/Adapter/Logger/Tests/Unit/PsrLoggerLoaderTest.php b/src/adapter/etl-adapter-logger/tests/Flow/ETL/Adapter/Logger/Tests/Unit/PsrLoggerLoaderTest.php index 323bb4b37..fa65ead66 100644 --- a/src/adapter/etl-adapter-logger/tests/Flow/ETL/Adapter/Logger/Tests/Unit/PsrLoggerLoaderTest.php +++ b/src/adapter/etl-adapter-logger/tests/Flow/ETL/Adapter/Logger/Tests/Unit/PsrLoggerLoaderTest.php @@ -4,9 +4,10 @@ namespace Flow\ETL\Adapter\Logger\Tests\Unit; +use function Flow\ETL\DSL\{config, flow_context, row, rows}; use function Flow\ETL\DSL\{int_entry, string_entry}; use Flow\ETL\Adapter\Logger\PsrLoggerLoader; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; use Psr\Log\LogLevel; use Psr\Log\Test\TestLogger; @@ -18,12 +19,7 @@ public function test_psr_logger_loader() : void $loader = new PsrLoggerLoader($logger, 'row log', LogLevel::ERROR); - $loader->load(new Rows( - Row::create( - int_entry('id', 12345), - string_entry('name', 'Norbert')->toLowercase() - ) - ), new FlowContext(Config::default())); + $loader->load(rows(row(int_entry('id', 12345), string_entry('name', 'Norbert')->toLowercase())), flow_context(config())); self::assertTrue($logger->hasErrorRecords()); self::assertTrue($logger->hasError('row log')); diff --git a/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Context/MeilisearchContext.php b/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Context/MeilisearchContext.php index 30d9a493b..ffe8b840c 100644 --- a/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Context/MeilisearchContext.php +++ b/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Context/MeilisearchContext.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Adapter\Meilisearch\Tests\Context; use function Flow\ETL\Adapter\Meilisearch\to_meilisearch_bulk_index; -use Flow\ETL\{Config, FlowContext, Rows}; +use function Flow\ETL\DSL\{config, flow_context}; +use Flow\ETL\{Rows}; use Meilisearch\Client; final class MeilisearchContext @@ -64,6 +65,6 @@ public function loadRows(Rows $rows, string $index) : void $this->clientConfig(), $index ) - ->load($rows, new FlowContext(Config::default())); + ->load($rows, flow_context(config())); } } diff --git a/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Integration/MeilisearchPHP/MailiSearchTest.php b/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Integration/MeilisearchPHP/MailiSearchTest.php index 0e2178331..dae22c849 100644 --- a/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Integration/MeilisearchPHP/MailiSearchTest.php +++ b/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Integration/MeilisearchPHP/MailiSearchTest.php @@ -5,10 +5,12 @@ namespace Flow\ETL\Adapter\Meilisearch\Tests\Integration\MeilisearchPHP; use function Flow\ETL\Adapter\Meilisearch\{from_meilisearch, meilisearch_hits_to_rows, to_meilisearch_bulk_index}; +use function Flow\ETL\DSL\rows; +use function Flow\ETL\DSL\{boolean_entry, integer_entry}; use function Flow\ETL\DSL\{from_array, string_entry}; use Flow\ETL\Adapter\Meilisearch\Tests\Context\MeilisearchContext; use Flow\ETL\Adapter\Meilisearch\Tests\Double\Spy\HttpClientSpy; -use Flow\ETL\{Flow, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Flow, Row, Tests\FlowTestCase}; final class MailiSearchTest extends FlowTestCase { @@ -64,17 +66,10 @@ public function test_batch_size_when_its_not_explicitly_set() : void public function test_loading_and_extraction_with_limit_and_transformation() : void { $this->meilisearchContext->loadRows( - new Rows( - ...\array_map( - static fn (int $i) : Row => Row::create( - string_entry('id', \sha1((string) $i)), - new Row\Entry\IntegerEntry('position', $i), - string_entry('name', 'id_' . $i), - new Row\Entry\BooleanEntry('active', false) - ), - \range(1, 101) - ), - ), + rows(...\array_map( + static fn (int $i) : Row => \Flow\ETL\DSL\row(string_entry('id', \sha1((string) $i)), integer_entry('position', $i), string_entry('name', 'id_' . $i), boolean_entry('active', false)), + \range(1, 101) + )), self::SOURCE_INDEX ); diff --git a/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Integration/MeilisearchPHP/MeilisearchExtractorTest.php b/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Integration/MeilisearchPHP/MeilisearchExtractorTest.php index 2fbeb4ad7..47d8a659b 100644 --- a/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Integration/MeilisearchPHP/MeilisearchExtractorTest.php +++ b/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Integration/MeilisearchPHP/MeilisearchExtractorTest.php @@ -5,9 +5,11 @@ namespace Flow\ETL\Adapter\Meilisearch\Tests\Integration\MeilisearchPHP; use function Flow\ETL\Adapter\Meilisearch\{from_meilisearch, meilisearch_hits_to_rows, to_meilisearch_bulk_index}; +use function Flow\ETL\DSL\{boolean_entry, flow_context, integer_entry}; +use function Flow\ETL\DSL\{config, rows}; use function Flow\ETL\DSL\{generate_random_int, string_entry}; use Flow\ETL\Adapter\Meilisearch\Tests\Context\MeilisearchContext; -use Flow\ETL\{Config, Flow, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Flow, Row, Tests\FlowTestCase}; final class MeilisearchExtractorTest extends FlowTestCase { @@ -29,17 +31,10 @@ protected function tearDown() : void public function test_empty_extraction() : void { $loader = to_meilisearch_bulk_index($this->meilisearchContext->clientConfig(), self::INDEX_NAME); - $loader->load(new Rows( - ...\array_map( - static fn (int $i) : Row => Row::create( - string_entry('id', \sha1((string) $i)), - new Row\Entry\IntegerEntry('position', $i), - string_entry('name', 'id_' . $i), - new Row\Entry\BooleanEntry('active', (bool) generate_random_int(0, 1)) - ), - \range(1, 100) - ), - ), new FlowContext(Config::default())); + $loader->load(rows(...\array_map( + static fn (int $i) : Row => \Flow\ETL\DSL\row(string_entry('id', \sha1((string) $i)), integer_entry('position', $i), string_entry('name', 'id_' . $i), boolean_entry('active', (bool) generate_random_int(0, 1))), + \range(1, 100) + )), flow_context(config())); $params = [ 'q' => 'title=this_cant_be_matched', @@ -55,18 +50,11 @@ public function test_empty_extraction() : void public function test_extraction_index_with_from_and_size() : void { $loader = to_meilisearch_bulk_index($this->meilisearchContext->clientConfig(), self::INDEX_NAME); - $loader->load(new Rows( - ...\array_map( - static fn (int $i) : Row => Row::create( - string_entry('id', \sha1((string) $i)), - new Row\Entry\IntegerEntry('position', $i), - string_entry('name', 'id_' . $i), - new Row\Entry\BooleanEntry('active', (bool) generate_random_int(0, 1)) - ), - // Default limit for Meilisearch is 1000 documents: https://www.meilisearch.com/docs/reference/api/settings#pagination - \range(1, 100) - ), - ), new FlowContext(Config::default())); + $loader->load(rows(...\array_map( + static fn (int $i) : Row => \Flow\ETL\DSL\row(string_entry('id', \sha1((string) $i)), integer_entry('position', $i), string_entry('name', 'id_' . $i), boolean_entry('active', (bool) generate_random_int(0, 1))), + // Default limit for Meilisearch is 1000 documents: https://www.meilisearch.com/docs/reference/api/settings#pagination + \range(1, 100) + )), flow_context(config())); $params = [ 'q' => '', @@ -94,18 +82,11 @@ public function test_extraction_index_with_sort() : void $this->meilisearchContext->client()->index(self::INDEX_NAME)->updateSettings(['sortableAttributes' => ['position']]); $loader = to_meilisearch_bulk_index($this->meilisearchContext->clientConfig(), self::INDEX_NAME); - $loader->load(new Rows( - ...\array_map( - static fn (int $i) : Row => Row::create( - string_entry('id', \sha1((string) $i)), - new Row\Entry\IntegerEntry('position', $i), - string_entry('name', 'id_' . $i), - new Row\Entry\BooleanEntry('active', (bool) generate_random_int(0, 1)) - ), - // Default limit for Meilisearch is 1000 documents: https://www.meilisearch.com/docs/reference/api/settings#pagination - \range(1, 100) - ), - ), new FlowContext(Config::default())); + $loader->load(rows(...\array_map( + static fn (int $i) : Row => \Flow\ETL\DSL\row(string_entry('id', \sha1((string) $i)), integer_entry('position', $i), string_entry('name', 'id_' . $i), boolean_entry('active', (bool) generate_random_int(0, 1))), + // Default limit for Meilisearch is 1000 documents: https://www.meilisearch.com/docs/reference/api/settings#pagination + \range(1, 100) + )), flow_context(config())); $params = [ 'q' => '', diff --git a/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Integration/MeilisearchPHP/MeilisearchLoaderTest.php b/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Integration/MeilisearchPHP/MeilisearchLoaderTest.php index 978b251e9..8c0d201cc 100644 --- a/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Integration/MeilisearchPHP/MeilisearchLoaderTest.php +++ b/src/adapter/etl-adapter-meilisearch/tests/Flow/ETL/Adapter/Meilisearch/Tests/Integration/MeilisearchPHP/MeilisearchLoaderTest.php @@ -5,9 +5,11 @@ namespace Flow\ETL\Adapter\Meilisearch\Tests\Integration\MeilisearchPHP; use function Flow\ETL\Adapter\Meilisearch\{to_meilisearch_bulk_index, to_meilisearch_bulk_update}; -use function Flow\ETL\DSL\string_entry; +use function Flow\ETL\DSL\{config, row, rows}; +use function Flow\ETL\DSL\{flow_context, generate_random_string, integer_entry, string_entry}; use Flow\ETL\Adapter\Meilisearch\Tests\Context\MeilisearchContext; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\Row\Entry\{DateTimeEntry, JsonEntry}; +use Flow\ETL\{Tests\FlowTestCase}; final class MeilisearchLoaderTest extends FlowTestCase { @@ -29,7 +31,7 @@ protected function tearDown() : void public function test_empty_rows() : void { $loader = to_meilisearch_bulk_index($this->meilisearchContext->clientConfig(), self::INDEX_NAME); - $loader->load(new Rows(), new FlowContext(Config::default())); + $loader->load(rows(), flow_context(config())); $response = $this->meilisearchContext->client()->index(self::INDEX_NAME)->search('', ['page' => 1]); @@ -39,24 +41,7 @@ public function test_empty_rows() : void public function test_integration_with_entry_factory() : void { $loader = to_meilisearch_bulk_index($this->meilisearchContext->clientConfig(), self::INDEX_NAME); - $loader->load(new Rows( - Row::create( - string_entry('id', \sha1('id' . \Flow\ETL\DSL\generate_random_string())), - string_entry('name', 'Łukasz') - ), - Row::create( - string_entry('id', \sha1('id' . \Flow\ETL\DSL\generate_random_string())), - string_entry('name', 'Norbert') - ), - Row::create( - string_entry('id', \sha1('id' . \Flow\ETL\DSL\generate_random_string())), - string_entry('name', 'Dawid') - ), - Row::create( - string_entry('id', \sha1('id' . \Flow\ETL\DSL\generate_random_string())), - string_entry('name', 'Tomek') - ), - ), new FlowContext(Config::default())); + $loader->load(rows(row(string_entry('id', \sha1('id' . generate_random_string())), string_entry('name', 'Łukasz')), row(string_entry('id', \sha1('id' . generate_random_string())), string_entry('name', 'Norbert')), row(string_entry('id', \sha1('id' . generate_random_string())), string_entry('name', 'Dawid')), row(string_entry('id', \sha1('id' . generate_random_string())), string_entry('name', 'Tomek'))), flow_context(config())); $response = $this->meilisearchContext->client()->index(self::INDEX_NAME)->search(''); @@ -71,12 +56,7 @@ public function test_integration_with_entry_factory() : void public function test_integration_with_json_entry() : void { $loader = to_meilisearch_bulk_index($this->meilisearchContext->clientConfig(), self::INDEX_NAME); - $loader->load(new Rows( - Row::create( - new Row\Entry\IntegerEntry('id', 1), - Row\Entry\JsonEntry::object('json', ['foo' => 'bar']) - ), - ), new FlowContext(Config::default())); + $loader->load(rows(row(integer_entry('id', 1), JsonEntry::object('json', ['foo' => 'bar']))), flow_context(config())); $response = $this->meilisearchContext->client()->index(self::INDEX_NAME)->search(''); @@ -90,22 +70,10 @@ public function test_integration_with_json_entry() : void public function test_integration_with_partial_update_id_factory() : void { $insertLoader = to_meilisearch_bulk_index($this->meilisearchContext->clientConfig(), self::INDEX_NAME); - $insertLoader->load(new Rows( - Row::create( - new Row\Entry\IntegerEntry('id', 1), - string_entry('name', 'Some Name'), - string_entry('status', 'NEW'), - new Row\Entry\DateTimeEntry('updated_at', new \DateTimeImmutable('2022-01-01 00:00:00')) - ), - ), new FlowContext(Config::default())); + $insertLoader->load(rows(row(integer_entry('id', 1), string_entry('name', 'Some Name'), string_entry('status', 'NEW'), new DateTimeEntry('updated_at', new \DateTimeImmutable('2022-01-01 00:00:00')))), flow_context(config())); $updateLoader = to_meilisearch_bulk_update($this->meilisearchContext->clientConfig(), self::INDEX_NAME); - $updateLoader->load(new Rows( - Row::create( - new Row\Entry\IntegerEntry('id', 1), - string_entry('name', 'Other Name'), - ), - ), new FlowContext(Config::default())); + $updateLoader->load(rows(row(integer_entry('id', 1), string_entry('name', 'Other Name'))), flow_context(config())); $response = $this->meilisearchContext->client()->index(self::INDEX_NAME)->search(''); diff --git a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Benchmark/ParquetExtractorBench.php b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Benchmark/ParquetExtractorBench.php index 46a69de2b..45586ca1a 100644 --- a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Benchmark/ParquetExtractorBench.php +++ b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Benchmark/ParquetExtractorBench.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Adapter\Parquet\Tests\Benchmark; use function Flow\ETL\Adapter\Parquet\from_parquet; -use Flow\ETL\{Config, FlowContext}; +use function Flow\ETL\DSL\{config, flow_context}; +use Flow\ETL\{FlowContext}; use PhpBench\Attributes\Groups; #[Groups(['extractor'])] @@ -15,7 +16,7 @@ public function __construct() { - $this->context = new FlowContext(Config::default()); + $this->context = flow_context(config()); } public function bench_extract_10k() : void diff --git a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Benchmark/ParquetLoaderBench.php b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Benchmark/ParquetLoaderBench.php index 343bb3836..a4ecb777c 100644 --- a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Benchmark/ParquetLoaderBench.php +++ b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Benchmark/ParquetLoaderBench.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Adapter\Parquet\Tests\Benchmark; use function Flow\ETL\Adapter\Parquet\{from_parquet, to_parquet}; -use Flow\ETL\{Config, FlowContext, Rows}; +use function Flow\ETL\DSL\{config, flow_context}; +use Flow\ETL\{FlowContext, Rows}; use PhpBench\Attributes\Groups; #[Groups(['loader'])] @@ -19,9 +20,9 @@ final class ParquetLoaderBench public function __construct() { - $this->context = new FlowContext(Config::default()); + $this->context = flow_context(config()); $this->outputPath = \tempnam(\sys_get_temp_dir(), 'etl_parquet_loader_bench') . '.parquet'; - $this->rows = new Rows(); + $this->rows = \Flow\ETL\DSL\rows(); foreach (from_parquet(__DIR__ . '/Fixtures/orders_10k.parquet')->extract($this->context) as $rows) { $this->rows = $this->rows->merge($rows); diff --git a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Integration/ParquetExtractorTest.php b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Integration/ParquetExtractorTest.php index 38d83dbcf..49a686744 100644 --- a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Integration/ParquetExtractorTest.php +++ b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Integration/ParquetExtractorTest.php @@ -4,9 +4,10 @@ namespace Flow\ETL\Adapter\Parquet\Tests\Integration; +use function Flow\ETL\DSL\{config, flow_context}; use Flow\ETL\Adapter\Parquet\ParquetExtractor; use Flow\ETL\Extractor\Signal; -use Flow\ETL\{Config, FlowContext, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; use Flow\Filesystem\Path; use Flow\Parquet\{Options, Reader}; @@ -19,7 +20,7 @@ public function test_limit() : void self::assertCount( 2, - \iterator_to_array($extractor->extract(new FlowContext(Config::default()))) + \iterator_to_array($extractor->extract(flow_context(config()))) ); } @@ -33,7 +34,7 @@ public function test_reading_file_from_given_offset() : void self::assertCount( 100, - \iterator_to_array($extractor->extract(new FlowContext(Config::default()))) + \iterator_to_array($extractor->extract(flow_context(config()))) ); } @@ -41,7 +42,7 @@ public function test_signal_stop() : void { $extractor = new ParquetExtractor(\Flow\Filesystem\DSL\path(__DIR__ . '/Fixtures/orders_1k.parquet'), Options::default()); - $generator = $extractor->extract(new FlowContext(Config::default())); + $generator = $extractor->extract(flow_context(config())); self::assertTrue($generator->valid()); $generator->next(); diff --git a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Unit/FlowToParquetSchemaTest.php b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Unit/FlowToParquetSchemaTest.php index c4be7e2eb..d58e8a0ef 100644 --- a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Unit/FlowToParquetSchemaTest.php +++ b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Unit/FlowToParquetSchemaTest.php @@ -4,13 +4,22 @@ namespace Flow\ETL\Adapter\Parquet\Tests\Unit; -use function Flow\ETL\DSL\{type_boolean, type_int, type_string}; +use function Flow\ETL\DSL\{bool_schema, + datetime_schema, + float_schema, + integer_schema, + json_schema, + list_schema, + map_schema, + string_schema, + structure_element, + structure_schema, + type_integer, + type_list, + type_map, + type_structure}; +use function Flow\ETL\DSL\{schema, type_boolean, type_int, type_string}; use Flow\ETL\Adapter\Parquet\SchemaConverter; -use Flow\ETL\PHP\Type\Logical\List\ListElement; -use Flow\ETL\PHP\Type\Logical\Map\{MapKey, MapValue}; -use Flow\ETL\PHP\Type\Logical\Structure\StructureElement; -use Flow\ETL\PHP\Type\Logical\{ListType, MapType, StructureType}; -use Flow\ETL\Row\Schema; use Flow\ETL\Tests\FlowTestCase; use Flow\Parquet\ParquetFile\Schema as ParquetSchema; use Flow\Parquet\ParquetFile\Schema\{FlatColumn, NestedColumn}; @@ -38,23 +47,33 @@ public function test_convert_etl_entries_to_parquet_fields() : void NestedColumn::struct('structure', [FlatColumn::string('a', ParquetSchema\Repetition::REQUIRED)], ParquetSchema\Repetition::REQUIRED), NestedColumn::map('map', ParquetSchema\MapKey::string(), ParquetSchema\MapValue::int64(true), ParquetSchema\Repetition::REQUIRED), ), - (new SchemaConverter())->toParquet(new Schema( - Schema\Definition::integer('integer'), - Schema\Definition::boolean('boolean'), - Schema\Definition::string('string'), - Schema\Definition::float('float'), - Schema\Definition::dateTime('datetime'), - Schema\Definition::json('json'), - Schema\Definition::list('list', new ListType(ListElement::string())), - Schema\Definition::list('list_of_structs', new ListType(ListElement::structure( - new StructureType([ - new StructureElement('integer', type_int()), - new StructureElement('boolean', type_boolean()), - ]), - ))), - Schema\Definition::structure('structure', new StructureType([new StructureElement('a', type_string())])), - Schema\Definition::map('map', new MapType(MapKey::string(), MapValue::integer())), - )) + (new SchemaConverter())->toParquet( + schema( + integer_schema('integer'), + bool_schema('boolean'), + string_schema('string'), + float_schema('float'), + datetime_schema('datetime'), + json_schema('json'), + list_schema('list', type_list(type_string())), + list_schema( + 'list_of_structs', + type_list( + type_structure([ + structure_element('integer', type_int()), + structure_element('boolean', type_boolean()), + ]) + ) + ), + structure_schema( + 'structure', + type_structure([ + structure_element('a', type_string()), + ]) + ), + map_schema('map', type_map(type_string(), type_integer())) + ) + ) ); } } diff --git a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Unit/ParquetToFlowSchemaTest.php b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Unit/ParquetToFlowSchemaTest.php index 76d27c5a9..1cdbd42bd 100644 --- a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Unit/ParquetToFlowSchemaTest.php +++ b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Unit/ParquetToFlowSchemaTest.php @@ -27,6 +27,7 @@ use Flow\ETL\Adapter\Parquet\SchemaConverter; use Flow\ETL\Tests\FlowTestCase; use Flow\Parquet\ParquetFile\Schema; +use Flow\Parquet\ParquetFile\Schema\{FlatColumn, ListElement, NestedColumn}; use Flow\Parquet\ParquetFile\Schema\{MapKey, MapValue}; final class ParquetToFlowSchemaTest extends FlowTestCase @@ -36,18 +37,18 @@ public function test_converting_flat_fields_to_flow_schema() : void $converted = new SchemaConverter(); $flowSchema = $converted->fromParquet(Schema::with( - Schema\FlatColumn::int32('int32'), - Schema\FlatColumn::int64('int64'), - Schema\FlatColumn::string('string'), - Schema\FlatColumn::float('float'), - Schema\FlatColumn::double('double'), - Schema\FlatColumn::decimal('decimal'), - Schema\FlatColumn::boolean('boolean'), - Schema\FlatColumn::date('date'), - Schema\FlatColumn::time('time'), - Schema\FlatColumn::dateTime('datetime'), - Schema\FlatColumn::uuid('uuid'), - Schema\FlatColumn::json('json'), + FlatColumn::int32('int32'), + FlatColumn::int64('int64'), + FlatColumn::string('string'), + FlatColumn::float('float'), + FlatColumn::double('double'), + FlatColumn::decimal('decimal'), + FlatColumn::boolean('boolean'), + FlatColumn::date('date'), + FlatColumn::time('time'), + FlatColumn::dateTime('datetime'), + FlatColumn::uuid('uuid'), + FlatColumn::json('json'), )); self::assertEquals( @@ -74,7 +75,7 @@ public function test_converting_list_to_flow_schema() : void $converted = new SchemaConverter(); $flowSchema = $converted->fromParquet(Schema::with( - Schema\NestedColumn::list('list', Schema\ListElement::string()), + NestedColumn::list('list', ListElement::string()), )); self::assertEquals( @@ -90,7 +91,7 @@ public function test_converting_map_to_flow_schema() : void $converted = new SchemaConverter(); $flowSchema = $converted->fromParquet(Schema::with( - Schema\NestedColumn::map('map', MapKey::string(), MapValue::int64()), + NestedColumn::map('map', MapKey::string(), MapValue::int64()), )); self::assertEquals( @@ -106,12 +107,12 @@ public function test_converting_struct_to_flow_schema() : void $converted = new SchemaConverter(); $flowSchema = $converted->fromParquet(Schema::with( - Schema\NestedColumn::struct( + NestedColumn::struct( 'struct', [ - Schema\FlatColumn::uuid('uuid'), - Schema\FlatColumn::string('name'), - Schema\FlatColumn::boolean('active'), + FlatColumn::uuid('uuid'), + FlatColumn::string('name'), + FlatColumn::boolean('active'), ] ), )); diff --git a/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Benchmark/TextExtractorBench.php b/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Benchmark/TextExtractorBench.php index 5dd011f4b..3c4fffe86 100644 --- a/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Benchmark/TextExtractorBench.php +++ b/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Benchmark/TextExtractorBench.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Adapter\Text\Tests\Benchmark; use function Flow\ETL\Adapter\Text\from_text; -use Flow\ETL\{Config, FlowContext}; +use function Flow\ETL\DSL\{config, flow_context}; +use Flow\ETL\{FlowContext}; use PhpBench\Attributes\Groups; #[Groups(['extractor'])] @@ -15,7 +16,7 @@ public function __construct() { - $this->context = new FlowContext(Config::default()); + $this->context = flow_context(config()); } public function bench_extract_10k() : void diff --git a/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Benchmark/TextLoaderBench.php b/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Benchmark/TextLoaderBench.php index a42660de9..8eceba544 100644 --- a/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Benchmark/TextLoaderBench.php +++ b/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Benchmark/TextLoaderBench.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Adapter\Text\Tests\Benchmark; use function Flow\ETL\Adapter\Text\{from_text, to_text}; -use Flow\ETL\{Config, FlowContext, Rows}; +use function Flow\ETL\DSL\{config, flow_context}; +use Flow\ETL\{FlowContext, Rows}; use PhpBench\Attributes\Groups; #[Groups(['loader'])] @@ -19,9 +20,9 @@ final class TextLoaderBench public function __construct() { - $this->context = new FlowContext(Config::default()); + $this->context = flow_context(config()); $this->outputPath = \tempnam(\sys_get_temp_dir(), 'etl_txt_loader_bench') . '.txt'; - $this->rows = new Rows(); + $this->rows = \Flow\ETL\DSL\rows(); foreach (from_text(__DIR__ . '/../Fixtures/orders_flow.csv')->extract($this->context) as $rows) { $this->rows = $this->rows->merge($rows); diff --git a/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Integration/TextExtractorTest.php b/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Integration/TextExtractorTest.php index 497caa126..4309ed4ef 100644 --- a/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Integration/TextExtractorTest.php +++ b/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Integration/TextExtractorTest.php @@ -5,9 +5,11 @@ namespace Flow\ETL\Adapter\Text\Tests\Integration; use function Flow\ETL\Adapter\Text\{from_text}; +use function Flow\ETL\DSL\{config, flow_context}; use Flow\ETL\Adapter\Text\TextExtractor; use Flow\ETL\Extractor\Signal; -use Flow\ETL\{Config, Flow, FlowContext, Row, Tests\FlowTestCase}; +use Flow\ETL\Row\Entry\StringEntry; +use Flow\ETL\{Flow, Tests\FlowTestCase}; use Flow\Filesystem\Path; final class TextExtractorTest extends FlowTestCase @@ -21,7 +23,7 @@ public function test_extracting_text_file() : void ->fetch(); foreach ($rows as $row) { - self::assertInstanceOf(Row\Entry\StringEntry::class, $row->get('text')); + self::assertInstanceOf(StringEntry::class, $row->get('text')); } self::assertSame(1024, $rows->count()); @@ -34,7 +36,7 @@ public function test_limit() : void self::assertCount( 2, - \iterator_to_array($extractor->extract(new FlowContext(Config::default()))) + \iterator_to_array($extractor->extract(flow_context(config()))) ); } @@ -42,7 +44,7 @@ public function test_signal_stop() : void { $extractor = new TextExtractor(Path::realpath(__DIR__ . '/../Fixtures/orders_flow.csv')); - $generator = $extractor->extract(new FlowContext(Config::default())); + $generator = $extractor->extract(flow_context(config())); self::assertTrue($generator->valid()); $generator->next(); diff --git a/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Integration/TextTest.php b/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Integration/TextTest.php index 722cb73c5..6b9a74490 100644 --- a/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Integration/TextTest.php +++ b/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Integration/TextTest.php @@ -5,22 +5,19 @@ namespace Flow\ETL\Adapter\Text\Tests\Integration; use function Flow\ETL\Adapter\Text\to_text; -use function Flow\ETL\DSL\string_entry; -use Flow\ETL\{Flow, Row, Rows, Tests\FlowTestCase}; +use function Flow\ETL\DSL\{generate_random_string, string_entry}; +use function Flow\ETL\DSL\{row, rows}; +use Flow\ETL\{Flow, Tests\FlowTestCase}; final class TextTest extends FlowTestCase { public function test_loading_text_files() : void { - $path = __DIR__ . '/var/flow_php_etl_csv_loader' . \Flow\ETL\DSL\generate_random_string() . '.csv'; + $path = __DIR__ . '/var/flow_php_etl_csv_loader' . generate_random_string() . '.csv'; (new Flow()) ->process( - new Rows( - Row::create(string_entry('name', 'Norbert')), - Row::create(string_entry('name', 'Tomek')), - Row::create(string_entry('name', 'Dawid')), - ) + rows(row(string_entry('name', 'Norbert')), row(string_entry('name', 'Tomek')), row(string_entry('name', 'Dawid'))) ) ->write(to_text($path)) ->run(); diff --git a/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Benchmark/XmlExtractorBench.php b/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Benchmark/XmlExtractorBench.php index 31751f6f8..b3f966180 100644 --- a/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Benchmark/XmlExtractorBench.php +++ b/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Benchmark/XmlExtractorBench.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Adapter\XML\Tests\Benchmark; use function Flow\ETL\Adapter\XML\from_xml; -use Flow\ETL\{Config, FlowContext}; +use function Flow\ETL\DSL\{config, flow_context}; +use Flow\ETL\{FlowContext}; use PhpBench\Attributes\Groups; #[Groups(['extractor'])] @@ -15,7 +16,7 @@ public function __construct() { - $this->context = new FlowContext(Config::default()); + $this->context = flow_context(config()); } public function bench_extract_10k() : void diff --git a/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLParserExtractorTest.php b/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLParserExtractorTest.php index 200f82174..2a8a24cfb 100644 --- a/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLParserExtractorTest.php +++ b/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLParserExtractorTest.php @@ -5,12 +5,11 @@ namespace Flow\ETL\Adapter\XML\Tests\Integration; use function Flow\ETL\Adapter\XML\from_xml; -use function Flow\ETL\DSL\type_string; +use function Flow\ETL\DSL\config; +use function Flow\ETL\DSL\{flow_context, type_string}; use Flow\ETL\Extractor\Signal; use Flow\ETL\{Adapter\XML\XMLParserExtractor, - Config, Flow, - FlowContext, PHP\Type\Caster, Tests\FlowIntegrationTestCase}; use Flow\Filesystem\Path; @@ -24,7 +23,7 @@ public function test_limit() : void self::assertCount( 2, - \iterator_to_array($extractor->extract(new FlowContext(Config::default()))) + \iterator_to_array($extractor->extract(flow_context(config()))) ); } @@ -118,7 +117,7 @@ public function test_signal_stop() : void { $extractor = (new XMLParserExtractor(Path::realpath(__DIR__ . '/../Fixtures/flow_orders.xml')))->withXMLNodePath('root/row'); - $generator = $extractor->extract(new FlowContext(Config::default())); + $generator = $extractor->extract(flow_context(config())); self::assertTrue($generator->valid()); $generator->next(); diff --git a/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLReaderExtractorTest.php b/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLReaderExtractorTest.php index 957cc5a86..ef829a500 100644 --- a/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLReaderExtractorTest.php +++ b/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLReaderExtractorTest.php @@ -4,10 +4,11 @@ namespace Flow\ETL\Adapter\XML\Tests\Integration; -use function Flow\ETL\DSL\type_string; +use function Flow\ETL\DSL\config; +use function Flow\ETL\DSL\{flow_context, type_string}; use Flow\ETL\Adapter\XML\XMLReaderExtractor; use Flow\ETL\Extractor\Signal; -use Flow\ETL\{Config, Flow, FlowContext, PHP\Type\Caster, Tests\FlowIntegrationTestCase}; +use Flow\ETL\{Flow, PHP\Type\Caster, Tests\FlowIntegrationTestCase}; use Flow\Filesystem\Path; final class XMLReaderExtractorTest extends FlowIntegrationTestCase @@ -19,7 +20,7 @@ public function test_limit() : void self::assertCount( 2, - \iterator_to_array($extractor->extract(new FlowContext(Config::default()))) + \iterator_to_array($extractor->extract(flow_context(config()))) ); } @@ -113,7 +114,7 @@ public function test_signal_stop() : void { $extractor = new XMLReaderExtractor(Path::realpath(__DIR__ . '/../Fixtures/flow_orders.xml'), 'root/row'); - $generator = $extractor->extract(new FlowContext(Config::default())); + $generator = $extractor->extract(flow_context(config())); self::assertTrue($generator->valid()); $generator->next(); diff --git a/src/bridge/filesystem/azure/tests/Flow/Filesystem/Bridge/Azure/Tests/Unit/AzureBlobDestinationStreamTest.php b/src/bridge/filesystem/azure/tests/Flow/Filesystem/Bridge/Azure/Tests/Unit/AzureBlobDestinationStreamTest.php index 868cf8c13..d9338602e 100644 --- a/src/bridge/filesystem/azure/tests/Flow/Filesystem/Bridge/Azure/Tests/Unit/AzureBlobDestinationStreamTest.php +++ b/src/bridge/filesystem/azure/tests/Flow/Filesystem/Bridge/Azure/Tests/Unit/AzureBlobDestinationStreamTest.php @@ -4,6 +4,7 @@ namespace Flow\Filesystem\Bridge\Azure\Tests\Unit; +use function Flow\ETL\DSL\generate_random_string; use Flow\Azure\SDK\BlobService\BlockBlob\BlockList; use Flow\Azure\SDK\BlobService\PutBlockBlob\PutBlockBlobOptions; use Flow\Azure\SDK\BlobService\PutBlockBlobBlock\PutBlockBlobBlockOptions; @@ -23,7 +24,7 @@ public function test_using_put_blob_with_content_when_data_is_larger_than_block_ $blockFactory = $this->createMock(BlockFactory::class); $blockFactory->method('create') ->willReturnCallback( - fn () => new Block($id = \Flow\ETL\DSL\generate_random_string(), $blockSize, new Path(sys_get_temp_dir() . '/' . $id . '_block_01.txt')) + fn () => new Block($id = generate_random_string(), $blockSize, new Path(sys_get_temp_dir() . '/' . $id . '_block_01.txt')) ); $stream = AzureBlobDestinationStream::openBlank( @@ -71,7 +72,7 @@ public function test_using_put_blob_with_content_when_data_is_smaller_than_block $blockFactory = $this->createMock(BlockFactory::class); $blockFactory->method('create') ->willReturnCallback( - fn () => new Block($id = \Flow\ETL\DSL\generate_random_string(), $blockSize, new Path(sys_get_temp_dir() . '/' . $id . '_block_01.txt')) + fn () => new Block($id = generate_random_string(), $blockSize, new Path(sys_get_temp_dir() . '/' . $id . '_block_01.txt')) ); $stream = AzureBlobDestinationStream::openBlank( $blobService = $this->createMock(BlobServiceInterface::class), diff --git a/src/bridge/monolog/http/tests/Flow/Bridge/Monolog/Http/Tests/Unit/PSR7ProcessorTest.php b/src/bridge/monolog/http/tests/Flow/Bridge/Monolog/Http/Tests/Unit/PSR7ProcessorTest.php index 8e7968df1..2326e16ac 100644 --- a/src/bridge/monolog/http/tests/Flow/Bridge/Monolog/Http/Tests/Unit/PSR7ProcessorTest.php +++ b/src/bridge/monolog/http/tests/Flow/Bridge/Monolog/Http/Tests/Unit/PSR7ProcessorTest.php @@ -4,7 +4,7 @@ namespace Flow\Bridge\Monolog\Http\Tests\Unit; -use Flow\Bridge\Monolog\Http\Config\ResponseConfig; +use Flow\Bridge\Monolog\Http\Config\{RequestConfig, ResponseConfig}; use Flow\Bridge\Monolog\Http\{Config, PSR7Processor}; use Flow\ETL\Tests\FlowTestCase; use Nyholm\Psr7\Factory\Psr17Factory; @@ -50,7 +50,7 @@ public function test_normalizing_http_request_with_body() : void ->withHeader('Authorization', 'Bearer 123') ->withBody($psr17->createStream('Hello World!')); - $processor = new PSR7Processor((new Config(new Config\RequestConfig(withBody: true)))); + $processor = new PSR7Processor((new Config(new RequestConfig(withBody: true)))); $record = $processor(['datetime' => new \DateTimeImmutable, 'channel' => 'http', 'level_name' => 'debug', 'message' => 'HTTP Request', 'context' => ['request' => $request]]); @@ -80,7 +80,7 @@ public function test_normalizing_http_request_with_limited_body() : void ->withHeader('Authorization', 'Bearer 123') ->withBody($psr17->createStream('Hello World!')); - $processor = new PSR7Processor((new Config(new Config\RequestConfig(withBody: true, bodySizeLimit: 5)))); + $processor = new PSR7Processor((new Config(new RequestConfig(withBody: true, bodySizeLimit: 5)))); $record = $processor(['datetime' => new \DateTimeImmutable, 'channel' => 'http', 'level_name' => 'debug', 'message' => 'HTTP Request', 'context' => ['request' => $request]]); @@ -107,7 +107,7 @@ public function test_normalizing_http_request_without_headers() : void $request = $psr17->createRequest('POST', 'https://example.com/api/v1/users') ->withBody($psr17->createStream('Hello World!')); - $processor = new PSR7Processor((new Config(new Config\RequestConfig(headers: [])))); + $processor = new PSR7Processor((new Config(new RequestConfig(headers: [])))); $record = $processor(['datetime' => new \DateTimeImmutable, 'channel' => 'http', 'level_name' => 'debug', 'message' => 'HTTP Request', 'context' => ['request' => $request]]); diff --git a/src/core/etl/src/Flow/ETL/DSL/functions.php b/src/core/etl/src/Flow/ETL/DSL/functions.php index cae2c5afa..f7ad74d99 100644 --- a/src/core/etl/src/Flow/ETL/DSL/functions.php +++ b/src/core/etl/src/Flow/ETL/DSL/functions.php @@ -1297,14 +1297,32 @@ function schema_evolving_matcher() : EvolvingSchemaMatcher return new EvolvingSchemaMatcher(); } +/** + * Alias for `int_schema`. + */ #[DocumentationDSL(module: Module::CORE, type: DSLType::SCHEMA)] function int_schema(string $name, bool $nullable = false, ?Schema\Metadata $metadata = null) : Definition +{ + return integer_schema($name, $nullable, $metadata); +} + +#[DocumentationDSL(module: Module::CORE, type: DSLType::SCHEMA)] +function integer_schema(string $name, bool $nullable = false, ?Schema\Metadata $metadata = null) : Definition { return Definition::integer($name, $nullable, $metadata); } +/** + * Alias for `string_schema`. + */ #[DocumentationDSL(module: Module::CORE, type: DSLType::SCHEMA)] function str_schema(string $name, bool $nullable = false, ?Schema\Metadata $metadata = null) : Definition +{ + return string_schema($name, $nullable, $metadata); +} + +#[DocumentationDSL(module: Module::CORE, type: DSLType::SCHEMA)] +function string_schema(string $name, bool $nullable = false, ?Schema\Metadata $metadata = null) : Definition { return Definition::string($name, $nullable, $metadata); } diff --git a/src/core/etl/src/Flow/ETL/Extractor/SortBucketsExtractor.php b/src/core/etl/src/Flow/ETL/Extractor/SortBucketsExtractor.php index acb027646..e1c0676f2 100644 --- a/src/core/etl/src/Flow/ETL/Extractor/SortBucketsExtractor.php +++ b/src/core/etl/src/Flow/ETL/Extractor/SortBucketsExtractor.php @@ -6,6 +6,9 @@ use Flow\ETL\{Extractor, FlowContext, Rows, Sort\ExternalSort\Bucket, Sort\ExternalSort\BucketsCache}; +/** + * @internal created and used by ExternalSort algorithm + */ final readonly class SortBucketsExtractor implements Extractor { /** diff --git a/src/core/etl/tests/Flow/ETL/Tests/Benchmark/Transformer/RenameEntryTransformerBench.php b/src/core/etl/tests/Flow/ETL/Tests/Benchmark/Transformer/RenameEntryTransformerBench.php index b1d933192..f29e96a92 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Benchmark/Transformer/RenameEntryTransformerBench.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Benchmark/Transformer/RenameEntryTransformerBench.php @@ -4,8 +4,9 @@ namespace Flow\ETL\Tests\Benchmark\Transformer; +use function Flow\ETL\DSL\{config, flow_context}; use Flow\ETL\Transformer\RenameEntryTransformer; -use Flow\ETL\{Config, FlowContext, Rows}; +use Flow\ETL\{FlowContext, Rows}; use PhpBench\Attributes\{BeforeMethods, Groups}; #[BeforeMethods('setUp')] @@ -27,7 +28,7 @@ public function setUp() : void ['id' => 5, 'random' => false, 'text' => null, 'from' => 666], ], \range(0, 10_000))) ); - $this->context = new FlowContext(Config::default()); + $this->context = flow_context(config()); } public function bench_transform_10k_rows() : void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Double/EmptyExtractor.php b/src/core/etl/tests/Flow/ETL/Tests/Double/EmptyExtractor.php index 10dcb204b..844b0d29a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Double/EmptyExtractor.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Double/EmptyExtractor.php @@ -4,12 +4,13 @@ namespace Flow\ETL\Tests\Double; -use Flow\ETL\{Extractor, FlowContext, Rows}; +use function Flow\ETL\DSL\rows; +use Flow\ETL\{Extractor, FlowContext}; final class EmptyExtractor implements Extractor { public function extract(FlowContext $context) : \Generator { - yield new Rows(); + yield rows(); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Fixtures/with-dataframe.php b/src/core/etl/tests/Flow/ETL/Tests/Fixtures/with-dataframe.php index ca2e374f9..16a8f294b 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Fixtures/with-dataframe.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Fixtures/with-dataframe.php @@ -2,13 +2,9 @@ declare(strict_types=1); -use function Flow\ETL\DSL\str_entry; -use Flow\ETL\{Flow, Row, Rows}; +use function Flow\ETL\DSL\{row, rows, str_entry}; +use Flow\ETL\{Flow}; return (new Flow())->process( - new Rows( - Row::create(str_entry('code', 'PL'), str_entry('name', 'Poland')), - Row::create(str_entry('code', 'US'), str_entry('name', 'United States')), - Row::create(str_entry('code', 'GB'), str_entry('name', 'Great Britain')), - ) + rows(row(str_entry('code', 'PL'), str_entry('name', 'Poland')), row(str_entry('code', 'US'), str_entry('name', 'United States')), row(str_entry('code', 'GB'), str_entry('name', 'Great Britain'))) ); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Cache/CacheBaseTestSuite.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Cache/CacheBaseTestSuite.php index 77ace8563..55e4869a2 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Cache/CacheBaseTestSuite.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Cache/CacheBaseTestSuite.php @@ -5,6 +5,7 @@ namespace Flow\ETL\Tests\Integration\Cache; use function Flow\ETL\DSL\{row, rows, str_entry}; +use Flow\ETL\Cache; use Flow\ETL\Cache\{CacheIndex}; use Flow\ETL\Exception\KeyNotInCacheException; use Flow\ETL\Tests\FlowIntegrationTestCase; @@ -119,5 +120,5 @@ public function test_removing_non_existing_cache_key() : void static::assertFalse($cache->has('non-existing')); } - abstract protected function cache() : \Flow\ETL\Cache; + abstract protected function cache() : Cache; } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/GroupByTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/GroupByTest.php index a8b2c5fd2..19dbe14a4 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/GroupByTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/GroupByTest.php @@ -35,6 +35,7 @@ uuid_schema, window}; use Flow\ETL\Memory\ArrayMemory; +use Flow\ETL\PHP\Value\Uuid; use Flow\ETL\Tests\FlowIntegrationTestCase; use Flow\ETL\{Loader, Rows}; @@ -319,10 +320,10 @@ public function test_group_by_uuid() : void ); self::assertEquals( [ - ['uuid' => \Flow\ETL\PHP\Value\Uuid::fromString('b97a23ab-ba84-4d8f-9d9a-abd32cc58110'), 'score_sum' => 40, 'score_avg' => 20.0], - ['uuid' => \Flow\ETL\PHP\Value\Uuid::fromString('28fc1a5f-25eb-40e2-88b8-7a0cdc5d18ae'), 'score_sum' => 55, 'score_avg' => 27.5], - ['uuid' => \Flow\ETL\PHP\Value\Uuid::fromString('5085fabf-15f7-4467-9076-61547afbbdc9'), 'score_sum' => 125, 'score_avg' => 41.666667], - ['uuid' => \Flow\ETL\PHP\Value\Uuid::fromString('c7c22b40-45ad-46d1-a47b-0d1dd389ae41'), 'score_sum' => 50, 'score_avg' => 50.0], + ['uuid' => Uuid::fromString('b97a23ab-ba84-4d8f-9d9a-abd32cc58110'), 'score_sum' => 40, 'score_avg' => 20.0], + ['uuid' => Uuid::fromString('28fc1a5f-25eb-40e2-88b8-7a0cdc5d18ae'), 'score_sum' => 55, 'score_avg' => 27.5], + ['uuid' => Uuid::fromString('5085fabf-15f7-4467-9076-61547afbbdc9'), 'score_sum' => 125, 'score_avg' => 41.666667], + ['uuid' => Uuid::fromString('c7c22b40-45ad-46d1-a47b-0d1dd389ae41'), 'score_sum' => 50, 'score_avg' => 50.0], ], $rows->toArray() ); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/LimitTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/LimitTest.php index a911fd46f..cc98cd510 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/LimitTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/LimitTest.php @@ -4,6 +4,7 @@ namespace Flow\ETL\Tests\Integration\DataFrame; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{df, from_array, from_rows, @@ -14,10 +15,10 @@ type_map, type_string, type_structure}; +use function Flow\ETL\DSL\{integer_entry, list_entry}; use Flow\ETL\Exception\InvalidArgumentException; -use Flow\ETL\Row\Entry\{IntegerEntry}; use Flow\ETL\Tests\FlowIntegrationTestCase; -use Flow\ETL\{Extractor, FlowContext, Row, Rows}; +use Flow\ETL\{Extractor, FlowContext, Rows}; final class LimitTest extends FlowIntegrationTestCase { @@ -61,7 +62,7 @@ public function test_fetch_with_limit_below_0() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage("Limit can't be lower or equal zero, given: -1"); - df()->read(from_rows(new Rows()))->fetch(-1); + df()->read(from_rows(\Flow\ETL\DSL\rows()))->fetch(-1); } public function test_fetch_without_limit() : void @@ -76,9 +77,7 @@ public function test_fetch_without_limit() : void public function extract(FlowContext $context) : \Generator { for ($i = 0; $i < 20; $i++) { - yield new Rows( - Row::create(new IntegerEntry('id', $i)), - ); + yield \Flow\ETL\DSL\rows(row(integer_entry('id', $i))); } } }) @@ -99,10 +98,7 @@ public function test_limit() : void public function extract(FlowContext $context) : \Generator { for ($i = 0; $i < 1000; $i++) { - yield new Rows( - Row::create(new IntegerEntry('id', $i + 1)), - Row::create(new IntegerEntry('id', $i + 2)), - ); + yield \Flow\ETL\DSL\rows(row(integer_entry('id', $i + 1)), row(integer_entry('id', $i + 2))); } } }) @@ -117,7 +113,7 @@ public function test_limit_below_0() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage("Limit can't be lower or equal zero, given: -1"); - df()->read(from_rows(new Rows()))->limit(-1); + df()->read(from_rows(\Flow\ETL\DSL\rows()))->limit(-1); } public function test_limit_when_transformation_is_expanding_rows_extracted_from_extractor() : void @@ -132,26 +128,18 @@ public function test_limit_when_transformation_is_expanding_rows_extracted_from_ public function extract(FlowContext $context) : \Generator { for ($i = 0; $i < 1000; $i++) { - yield new Rows( - Row::create( - new Row\Entry\ListEntry( - 'ids', - [ - ['id' => $i + 1, 'more_ids' => [['more_id' => $i + 4], ['more_id' => $i + 7]]], - ['id' => $i + 2, 'more_ids' => [['more_id' => $i + 5], ['more_id' => $i + 8]]], - ['id' => $i + 3, 'more_ids' => [['more_id' => $i + 6], ['more_id' => $i + 9]]], - ], - type_list( - type_structure( - [ - struct_element('id', type_int()), - struct_element('more_ids', type_list(type_map(type_string(), type_int()))), - ] - ) - ) - ), + yield \Flow\ETL\DSL\rows(row(list_entry('ids', [ + ['id' => $i + 1, 'more_ids' => [['more_id' => $i + 4], ['more_id' => $i + 7]]], + ['id' => $i + 2, 'more_ids' => [['more_id' => $i + 5], ['more_id' => $i + 8]]], + ['id' => $i + 3, 'more_ids' => [['more_id' => $i + 6], ['more_id' => $i + 9]]], + ], type_list( + type_structure( + [ + struct_element('id', type_int()), + struct_element('more_ids', type_list(type_map(type_string(), type_int()))), + ] ) - ); + )))); } } }) @@ -180,10 +168,7 @@ public function test_limit_with_batch_size() : void public function extract(FlowContext $context) : \Generator { for ($i = 0; $i < 1000; $i++) { - yield new Rows( - Row::create(new IntegerEntry('id', $i + 1)), - Row::create(new IntegerEntry('id', $i + 2)), - ); + yield \Flow\ETL\DSL\rows(row(integer_entry('id', $i + 1)), row(integer_entry('id', $i + 2))); } } }) @@ -206,10 +191,7 @@ public function test_limit_with_collecting() : void public function extract(FlowContext $context) : \Generator { for ($i = 0; $i < 100; $i++) { - yield new Rows( - Row::create(new IntegerEntry('id', $i + 1)), - Row::create(new IntegerEntry('id', $i + 2)), - ); + yield \Flow\ETL\DSL\rows(row(integer_entry('id', $i + 1)), row(integer_entry('id', $i + 2))); } } }) @@ -232,9 +214,7 @@ public function test_with_total_rows_below_the_limit() : void public function extract(FlowContext $context) : \Generator { for ($i = 0; $i < 5; $i++) { - yield new Rows( - Row::create(new IntegerEntry('id', $i)), - ); + yield \Flow\ETL\DSL\rows(row(integer_entry('id', $i))); } } }) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/MapTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/MapTest.php index 687e9a5dd..60483b681 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/MapTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/MapTest.php @@ -12,6 +12,7 @@ type_list, type_string}; use Flow\ETL\Row; +use Flow\ETL\Row\Entry; use Flow\ETL\Tests\FlowIntegrationTestCase; final class MapTest extends FlowIntegrationTestCase @@ -34,7 +35,7 @@ public function test_using_map_to_replace_nullable_lists() : void ) ) ->map( - fn (Row $row) : Row => $row->map(fn (Row\Entry $e) => $e->value() === null && $e->is('tags') ? $e->withValue([]) : $e) + fn (Row $row) : Row => $row->map(fn (Entry $e) => $e->value() === null && $e->is('tags') ? $e->withValue([]) : $e) ) ->fetch(); @@ -57,7 +58,7 @@ public function test_using_map_to_replace_nulls() : void ['id' => 3, 'name' => 'Doe'], ])) ->map( - fn (Row $row) : Row => $row->map(fn (Row\Entry $e) => $e->value() === null && $e->is('name') ? $e->withValue('N/A') : $e) + fn (Row $row) : Row => $row->map(fn (Entry $e) => $e->value() === null && $e->is('name') ? $e->withValue('N/A') : $e) ) ->fetch(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/PartitioningTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/PartitioningTest.php index 34f7c7eb5..18d80b4fe 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/PartitioningTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/PartitioningTest.php @@ -5,6 +5,7 @@ namespace Flow\ETL\Tests\Integration\DataFrame; use function Flow\ETL\Adapter\Text\{from_text, to_text}; +use function Flow\ETL\DSL\generate_random_string; use function Flow\ETL\DSL\{collect, df, from_array, @@ -168,7 +169,7 @@ function (int $i) : array { for ($d = 0; $d < $maxItems; $d++) { $data[] = [ - 'id' => \Flow\ETL\DSL\generate_random_string(), + 'id' => generate_random_string(), 'created_at' => (new \DateTimeImmutable('2020-01-01'))->add(new \DateInterval('P' . $i . 'D'))->setTime(generate_random_int(0, 23), generate_random_int(0, 59), generate_random_int(0, 59)), 'value' => generate_random_int(1, 1000), ]; diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/RenameTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/RenameTest.php index c79ab7329..04849f118 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/RenameTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/RenameTest.php @@ -5,8 +5,9 @@ namespace Flow\ETL\Tests\Integration\DataFrame; use function Flow\ETL\DSL\{bool_entry, df, from_rows, int_entry, json_entry, ref, str_entry}; +use function Flow\ETL\DSL\{row, rows}; use Flow\ETL\Tests\FlowIntegrationTestCase; -use Flow\ETL\{Function\StyleConverter\StringStyles, Row, Rows}; +use Flow\ETL\{Function\StyleConverter\StringStyles}; final class RenameTest extends FlowIntegrationTestCase { @@ -14,31 +15,20 @@ public function test_rename() : void { $rows = df() ->read(from_rows( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), - Row::create(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false)), - ) + rows(row(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), row(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), row(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false))) )) ->rename('name', 'new_name') ->fetch(); self::assertEquals( - new Rows( - Row::create(int_entry('id', 1), str_entry('new_name', 'foo'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('new_name', null), bool_entry('active', false)), - Row::create(int_entry('id', 2), str_entry('new_name', 'bar'), bool_entry('active', false)), - ), + rows(row(int_entry('id', 1), str_entry('new_name', 'foo'), bool_entry('active', true)), row(int_entry('id', 2), str_entry('new_name', null), bool_entry('active', false)), row(int_entry('id', 2), str_entry('new_name', 'bar'), bool_entry('active', false))), $rows ); } public function test_rename_all() : void { - $rows = new Rows( - Row::create(json_entry('array', ['id' => 1, 'name' => 'name', 'active' => true])), - Row::create(json_entry('array', ['id' => 2, 'name' => 'name', 'active' => false])) - ); + $rows = rows(row(json_entry('array', ['id' => 1, 'name' => 'name', 'active' => true])), row(json_entry('array', ['id' => 2, 'name' => 'name', 'active' => false]))); $ds = df() ->read(from_rows($rows)) @@ -58,10 +48,7 @@ public function test_rename_all() : void public function test_rename_all_lower_case() : void { - $rows = new Rows( - Row::create(int_entry('ID', 1), str_entry('NAME', 'name'), bool_entry('ACTIVE', true)), - Row::create(int_entry('ID', 2), str_entry('NAME', 'name'), bool_entry('ACTIVE', false)), - ); + $rows = rows(row(int_entry('ID', 1), str_entry('NAME', 'name'), bool_entry('ACTIVE', true)), row(int_entry('ID', 2), str_entry('NAME', 'name'), bool_entry('ACTIVE', false))); $ds = df()->read(from_rows($rows))->renameAllLowerCase()->getEachAsArray(); @@ -76,10 +63,7 @@ public function test_rename_all_lower_case() : void public function test_rename_all_to_snake_case() : void { - $rows = new Rows( - Row::create(int_entry('id', 1), str_entry('UserName', 'name'), bool_entry('isActive', true)), - Row::create(int_entry('id', 2), str_entry('UserName', 'name'), bool_entry('isActive', false)), - ); + $rows = rows(row(int_entry('id', 1), str_entry('UserName', 'name'), bool_entry('isActive', true)), row(int_entry('id', 2), str_entry('UserName', 'name'), bool_entry('isActive', false))); $ds = df() ->read(from_rows($rows)) @@ -98,10 +82,7 @@ public function test_rename_all_to_snake_case() : void public function test_rename_all_upper_case() : void { - $rows = new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'name'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', 'name'), bool_entry('active', false)), - ); + $rows = rows(row(int_entry('id', 1), str_entry('name', 'name'), bool_entry('active', true)), row(int_entry('id', 2), str_entry('name', 'name'), bool_entry('active', false))); $ds = df() ->read(from_rows($rows)) @@ -119,10 +100,7 @@ public function test_rename_all_upper_case() : void public function test_rename_all_upper_case_first() : void { - $rows = new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'name'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', 'name'), bool_entry('active', false)), - ); + $rows = rows(row(int_entry('id', 1), str_entry('name', 'name'), bool_entry('active', true)), row(int_entry('id', 2), str_entry('name', 'name'), bool_entry('active', false))); $ds = df() ->read(from_rows($rows)) @@ -140,10 +118,7 @@ public function test_rename_all_upper_case_first() : void public function test_rename_all_upper_case_word() : void { - $rows = new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'name'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', 'name'), bool_entry('active', false)), - ); + $rows = rows(row(int_entry('id', 1), str_entry('name', 'name'), bool_entry('active', true)), row(int_entry('id', 2), str_entry('name', 'name'), bool_entry('active', false))); $ds = df() ->read(from_rows($rows)) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Extractor/CacheExtractorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Extractor/CacheExtractorTest.php index de4b4c417..6127e430e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Extractor/CacheExtractorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Extractor/CacheExtractorTest.php @@ -4,10 +4,9 @@ namespace Flow\ETL\Tests\Integration\Extractor; -use function Flow\ETL\DSL\{array_to_rows, config_builder, flow_context, from_array}; +use function Flow\ETL\DSL\{array_to_rows, config_builder, flow_context, from_array, from_cache}; use Flow\ETL\Cache\CacheIndex; use Flow\ETL\Cache\Implementation\InMemoryCache; -use Flow\ETL\Extractor\CacheExtractor; use Flow\ETL\Tests\FlowIntegrationTestCase; final class CacheExtractorTest extends FlowIntegrationTestCase @@ -27,7 +26,7 @@ public function test_extracting_rows_from_cache() : void $cache->set('key', $index); - $extractor = new CacheExtractor($cacheKey); + $extractor = from_cache($cacheKey); $rows = \iterator_to_array($extractor->extract(flow_context(config_builder()->cache($cache)->build()))); @@ -53,7 +52,7 @@ public function test_extracting_rows_from_cache_with_clearing_cache_afterwards() $cache->set('key', $index); - $extractor = (new CacheExtractor($cacheKey))->withClearOnFinish(true); + $extractor = (from_cache($cacheKey))->withClearOnFinish(true); $rows = \iterator_to_array($extractor->extract(flow_context(config_builder()->cache($cache)->build()))); @@ -68,7 +67,7 @@ public function test_fallback_extractor() : void { $cache = new InMemoryCache(); - $extractor = (new CacheExtractor('non_existing_cache_key')) + $extractor = (from_cache('non_existing_cache_key')) ->withClearOnFinish(true) ->withFallbackExtractor(from_array([ ['id' => 1], diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Pipeline/BatchingPipelineTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Pipeline/BatchingPipelineTest.php index f933c9cc7..255bde89f 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Pipeline/BatchingPipelineTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Pipeline/BatchingPipelineTest.php @@ -4,9 +4,10 @@ namespace Flow\ETL\Tests\Integration\Pipeline; +use function Flow\ETL\DSL\{config, flow_context}; use function Flow\ETL\DSL\{from_all, from_array}; use Flow\ETL\Pipeline\{BatchingPipeline, SynchronousPipeline}; -use Flow\ETL\{Config, FlowContext, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Rows, Tests\FlowTestCase}; final class BatchingPipelineTest extends FlowTestCase { @@ -31,7 +32,7 @@ public function test_batching_rows() : void self::assertCount( 1, - \iterator_to_array($pipeline->process(new FlowContext(Config::default()))) + \iterator_to_array($pipeline->process(flow_context(config()))) ); } @@ -71,7 +72,7 @@ public function test_that_rows_are_not_lost() : void ], \array_map( static fn (Rows $r) => $r->toArray(), - \iterator_to_array($pipeline->process(new FlowContext(Config::default()))) + \iterator_to_array($pipeline->process(flow_context(config()))) ) ); } @@ -97,7 +98,7 @@ public function test_using_bigger_batch_size_than_total_number_of_rows() : void self::assertCount( 1, - \iterator_to_array($pipeline->process(new FlowContext(Config::default()))) + \iterator_to_array($pipeline->process(flow_context(config()))) ); } @@ -120,7 +121,7 @@ public function test_using_smaller_batch_size_than_total_number_of_rows() : void self::assertCount( 2, - \iterator_to_array($pipeline->process(new FlowContext(Config::default()))) + \iterator_to_array($pipeline->process(flow_context(config()))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Pipeline/CollectingPipelineTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Pipeline/CollectingPipelineTest.php index a8f93da7b..af796ef7f 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Pipeline/CollectingPipelineTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Pipeline/CollectingPipelineTest.php @@ -4,9 +4,10 @@ namespace Flow\ETL\Tests\Integration\Pipeline; +use function Flow\ETL\DSL\{config, flow_context}; use function Flow\ETL\DSL\{from_all, from_array}; use Flow\ETL\Pipeline\{CollectingPipeline, SynchronousPipeline}; -use Flow\ETL\{Config, FlowContext, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class CollectingPipelineTest extends FlowTestCase { @@ -36,7 +37,7 @@ public function test_collecting() : void self::assertCount( 1, - \iterator_to_array($pipeline->process(new FlowContext(Config::default()))) + \iterator_to_array($pipeline->process(flow_context(config()))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/DataFrameTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/DataFrameTest.php index 1175bfe61..e8a867e1f 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/DataFrameTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/DataFrameTest.php @@ -20,9 +20,10 @@ str_entry, string_entry, to_callable}; +use function Flow\ETL\DSL\{bool_schema, boolean_entry, integer_entry, integer_schema, schema, string_schema}; use Flow\ETL\ErrorHandler\IgnoreError; -use Flow\ETL\Row\Entry\{BooleanEntry, DateTimeEntry, IntegerEntry}; -use Flow\ETL\Row\Schema; +use Flow\ETL\Row\Entry\{DateTimeEntry}; +use Flow\ETL\Row\Schema\SelectiveValidator; use Flow\ETL\Tests\Double\AddStampToStringEntryTransformer; use Flow\ETL\{DataFrame, Extractor, @@ -104,21 +105,13 @@ public function test_count() : void public function test_drop() : void { $rows = df()->process( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), - Row::create(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false)), - ) + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false))) ) ->drop('id') ->fetch(); self::assertEquals( - new Rows( - Row::create(str_entry('name', 'foo'), bool_entry('active', true)), - Row::create(str_entry('name', null), bool_entry('active', false)), - Row::create(str_entry('name', 'bar'), bool_entry('active', false)), - ), + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(str_entry('name', 'foo'), bool_entry('active', true)), \Flow\ETL\DSL\row(str_entry('name', null), bool_entry('active', false)), \Flow\ETL\DSL\row(str_entry('name', 'bar'), bool_entry('active', false))), $rows ); } @@ -126,20 +119,13 @@ public function test_drop() : void public function test_drop_duplicates() : void { $rows = df()->process( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false)), - Row::create(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false)), - ) + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false))) ) ->dropDuplicates(ref('id')) ->fetch(); self::assertEquals( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false)), - ), + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false))), $rows ); } @@ -147,16 +133,7 @@ public function test_drop_duplicates() : void public function test_encapsulate_transformations() : void { $rows = df()->process( - new Rows( - Row::create(int_entry('id', 1), str_entry('country', 'PL'), int_entry('age', 20), str_entry('gender', 'male')), - Row::create(int_entry('id', 2), str_entry('country', 'PL'), int_entry('age', 20), str_entry('gender', 'male')), - Row::create(int_entry('id', 3), str_entry('country', 'PL'), int_entry('age', 25), str_entry('gender', 'male')), - Row::create(int_entry('id', 4), str_entry('country', 'PL'), int_entry('age', 30), str_entry('gender', 'female')), - Row::create(int_entry('id', 5), str_entry('country', 'US'), int_entry('age', 40), str_entry('gender', 'female')), - Row::create(int_entry('id', 6), str_entry('country', 'US'), int_entry('age', 40), str_entry('gender', 'male')), - Row::create(int_entry('id', 7), str_entry('country', 'US'), int_entry('age', 45), str_entry('gender', 'female')), - Row::create(int_entry('id', 9), str_entry('country', 'US'), int_entry('age', 50), str_entry('gender', 'male')), - ) + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('country', 'PL'), int_entry('age', 20), str_entry('gender', 'male')), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('country', 'PL'), int_entry('age', 20), str_entry('gender', 'male')), \Flow\ETL\DSL\row(int_entry('id', 3), str_entry('country', 'PL'), int_entry('age', 25), str_entry('gender', 'male')), \Flow\ETL\DSL\row(int_entry('id', 4), str_entry('country', 'PL'), int_entry('age', 30), str_entry('gender', 'female')), \Flow\ETL\DSL\row(int_entry('id', 5), str_entry('country', 'US'), int_entry('age', 40), str_entry('gender', 'female')), \Flow\ETL\DSL\row(int_entry('id', 6), str_entry('country', 'US'), int_entry('age', 40), str_entry('gender', 'male')), \Flow\ETL\DSL\row(int_entry('id', 7), str_entry('country', 'US'), int_entry('age', 45), str_entry('gender', 'female')), \Flow\ETL\DSL\row(int_entry('id', 9), str_entry('country', 'US'), int_entry('age', 50), str_entry('gender', 'male'))) ) ->rows(new class implements Transformation { public function transform(DataFrame $dataFrame) : DataFrame @@ -177,16 +154,7 @@ public function transform(DataFrame $dataFrame) : DataFrame ->fetch(); self::assertEquals( - new Rows( - Row::create(str_entry('country', 'pl'), int_entry('age', 2)), - Row::create(str_entry('country', 'pl'), int_entry('age', 2)), - Row::create(str_entry('country', 'pl'), float_entry('age', 2.5)), - Row::create(str_entry('country', 'pl'), int_entry('age', 3)), - Row::create(str_entry('country', 'us'), int_entry('age', 4)), - Row::create(str_entry('country', 'us'), int_entry('age', 4)), - Row::create(str_entry('country', 'us'), float_entry('age', 4.5)), - Row::create(str_entry('country', 'us'), int_entry('age', 5)), - ), + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(str_entry('country', 'pl'), int_entry('age', 2)), \Flow\ETL\DSL\row(str_entry('country', 'pl'), int_entry('age', 2)), \Flow\ETL\DSL\row(str_entry('country', 'pl'), float_entry('age', 2.5)), \Flow\ETL\DSL\row(str_entry('country', 'pl'), int_entry('age', 3)), \Flow\ETL\DSL\row(str_entry('country', 'us'), int_entry('age', 4)), \Flow\ETL\DSL\row(str_entry('country', 'us'), int_entry('age', 4)), \Flow\ETL\DSL\row(str_entry('country', 'us'), float_entry('age', 4.5)), \Flow\ETL\DSL\row(str_entry('country', 'us'), int_entry('age', 5))), $rows ); } @@ -203,9 +171,7 @@ public function test_filter() : void public function extract(FlowContext $context) : \Generator { for ($i = 1; $i <= 10; $i++) { - yield new Rows( - Row::create(new IntegerEntry('id', $i)), - ); + yield \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(integer_entry('id', $i))); } } } @@ -223,19 +189,11 @@ public function extract(FlowContext $context) : \Generator public function test_foreach() : void { df()->process( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), - Row::create(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false)), - ) + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false))) ) ->foreach(function (Rows $rows) : void { $this->assertEquals( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), - Row::create(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false)), - ), + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false))), $rows ); }); @@ -245,14 +203,7 @@ public function test_get() : void { $rows = df() ->read(from_rows( - $extractedRows = new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo')), - Row::create(int_entry('id', 2), str_entry('name', 'bar')), - Row::create(int_entry('id', 3), str_entry('name', 'baz')), - Row::create(int_entry('id', 4), str_entry('name', 'foo')), - Row::create(int_entry('id', 5), str_entry('name', 'bar')), - Row::create(int_entry('id', 6), str_entry('name', 'baz')), - ) + $extractedRows = \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo')), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar')), \Flow\ETL\DSL\row(int_entry('id', 3), str_entry('name', 'baz')), \Flow\ETL\DSL\row(int_entry('id', 4), str_entry('name', 'foo')), \Flow\ETL\DSL\row(int_entry('id', 5), str_entry('name', 'bar')), \Flow\ETL\DSL\row(int_entry('id', 6), str_entry('name', 'baz'))) )) ->get(); @@ -263,14 +214,7 @@ public function test_get_as_array() : void { $rows = df() ->read(from_rows( - $extractedRows = new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo')), - Row::create(int_entry('id', 2), str_entry('name', 'bar')), - Row::create(int_entry('id', 3), str_entry('name', 'baz')), - Row::create(int_entry('id', 4), str_entry('name', 'foo')), - Row::create(int_entry('id', 5), str_entry('name', 'bar')), - Row::create(int_entry('id', 6), str_entry('name', 'baz')), - ) + $extractedRows = \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo')), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar')), \Flow\ETL\DSL\row(int_entry('id', 3), str_entry('name', 'baz')), \Flow\ETL\DSL\row(int_entry('id', 4), str_entry('name', 'foo')), \Flow\ETL\DSL\row(int_entry('id', 5), str_entry('name', 'bar')), \Flow\ETL\DSL\row(int_entry('id', 6), str_entry('name', 'baz'))) )) ->getAsArray(); @@ -283,24 +227,17 @@ public function test_get_each() : void { $rows = df() ->read(from_rows( - $extractedRows = new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo')), - Row::create(int_entry('id', 2), str_entry('name', 'bar')), - Row::create(int_entry('id', 3), str_entry('name', 'baz')), - Row::create(int_entry('id', 4), str_entry('name', 'foo')), - Row::create(int_entry('id', 5), str_entry('name', 'bar')), - Row::create(int_entry('id', 6), str_entry('name', 'baz')), - ) + $extractedRows = \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo')), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar')), \Flow\ETL\DSL\row(int_entry('id', 3), str_entry('name', 'baz')), \Flow\ETL\DSL\row(int_entry('id', 4), str_entry('name', 'foo')), \Flow\ETL\DSL\row(int_entry('id', 5), str_entry('name', 'bar')), \Flow\ETL\DSL\row(int_entry('id', 6), str_entry('name', 'baz'))) )) ->getEach(); self::assertEquals([ - Row::create(int_entry('id', 1), str_entry('name', 'foo')), - Row::create(int_entry('id', 2), str_entry('name', 'bar')), - Row::create(int_entry('id', 3), str_entry('name', 'baz')), - Row::create(int_entry('id', 4), str_entry('name', 'foo')), - Row::create(int_entry('id', 5), str_entry('name', 'bar')), - Row::create(int_entry('id', 6), str_entry('name', 'baz')), + \Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo')), + \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar')), + \Flow\ETL\DSL\row(int_entry('id', 3), str_entry('name', 'baz')), + \Flow\ETL\DSL\row(int_entry('id', 4), str_entry('name', 'foo')), + \Flow\ETL\DSL\row(int_entry('id', 5), str_entry('name', 'bar')), + \Flow\ETL\DSL\row(int_entry('id', 6), str_entry('name', 'baz')), ], \iterator_to_array($rows)); } @@ -308,14 +245,7 @@ public function test_get_each_as_array() : void { $rows = df() ->read(from_rows( - $extractedRows = new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo')), - Row::create(int_entry('id', 2), str_entry('name', 'bar')), - Row::create(int_entry('id', 3), str_entry('name', 'baz')), - Row::create(int_entry('id', 4), str_entry('name', 'foo')), - Row::create(int_entry('id', 5), str_entry('name', 'bar')), - Row::create(int_entry('id', 6), str_entry('name', 'baz')), - ) + $extractedRows = \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo')), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar')), \Flow\ETL\DSL\row(int_entry('id', 3), str_entry('name', 'baz')), \Flow\ETL\DSL\row(int_entry('id', 4), str_entry('name', 'foo')), \Flow\ETL\DSL\row(int_entry('id', 5), str_entry('name', 'bar')), \Flow\ETL\DSL\row(int_entry('id', 6), str_entry('name', 'baz'))) )) ->getEachAsArray(); @@ -344,14 +274,12 @@ public function test_map() : void public function extract(FlowContext $context) : \Generator { for ($i = 1; $i <= 10; $i++) { - yield new Rows( - Row::create(new IntegerEntry('id', $i)), - ); + yield \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(integer_entry('id', $i))); } } } ) - ->map(fn (Row $row) => $row->add(new BooleanEntry('odd', $row->valueOf('id') % 2 === 0))) + ->map(fn (Row $row) => $row->add(boolean_entry('odd', $row->valueOf('id') % 2 === 0))) ->fetch(); self::assertCount(10, $rows); @@ -402,23 +330,9 @@ public function test_pipeline() : void */ public function extract(FlowContext $context) : \Generator { - yield new Rows( - Row::create( - new IntegerEntry('id', 101), - new BooleanEntry('deleted', false), - new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-24')), - string_entry('phase', null) - ) - ); + yield \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(integer_entry('id', 101), boolean_entry('deleted', false), new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-24')), string_entry('phase', null))); - yield new Rows( - Row::create( - new IntegerEntry('id', 102), - new BooleanEntry('deleted', true), - new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-25')), - string_entry('phase', null) - ) - ); + yield \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(integer_entry('id', 102), boolean_entry('deleted', true), new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-25')), string_entry('phase', null))); } }; @@ -479,14 +393,7 @@ public function transform(Rows $rows, FlowContext $context) : Rows public function test_process_constructor() : void { $collectedRows = (new Flow())->process( - $rows = new Rows( - Row::create( - new IntegerEntry('id', 101), - new BooleanEntry('deleted', false), - new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-24')), - string_entry('phase', null) - ) - ) + $rows = \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(integer_entry('id', 101), boolean_entry('deleted', false), new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-24')), string_entry('phase', null))) ) ->fetch(); @@ -496,21 +403,13 @@ public function test_process_constructor() : void public function test_select() : void { $rows = (new Flow())->process( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), - Row::create(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false)), - ) + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false))) ) ->select('name', 'id') ->fetch(); self::assertEquals( - new Rows( - Row::create(str_entry('name', 'foo'), int_entry('id', 1)), - Row::create(str_entry('name', null), int_entry('id', 2)), - Row::create(str_entry('name', 'bar'), int_entry('id', 2)), - ), + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(str_entry('name', 'foo'), int_entry('id', 1)), \Flow\ETL\DSL\row(str_entry('name', null), int_entry('id', 2)), \Flow\ETL\DSL\row(str_entry('name', 'bar'), int_entry('id', 2))), $rows ); } @@ -518,22 +417,14 @@ public function test_select() : void public function test_selective_validation_against_schema() : void { $rows = (new Flow())->process( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', null), json_entry('tags', ['foo', 'bar'])), - Row::create(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false)), - ) + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', null), json_entry('tags', ['foo', 'bar'])), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false))) )->validate( - new Schema(Schema\Definition::integer('id', $nullable = false)), - new Schema\SelectiveValidator() + schema(integer_schema('id', $nullable = false)), + new SelectiveValidator() )->fetch(); self::assertEquals( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', null), json_entry('tags', ['foo', 'bar'])), - Row::create(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false)), - ), + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', null), json_entry('tags', ['foo', 'bar'])), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false))), $rows ); } @@ -541,25 +432,13 @@ public function test_selective_validation_against_schema() : void public function test_strict_validation_against_schema() : void { $rows = (new Flow())->process( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), - Row::create(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false)), - ) + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false))) )->validate( - new Schema( - Schema\Definition::integer('id', $nullable = false), - Schema\Definition::string('name', $nullable = true), - Schema\Definition::boolean('active', $nullable = false), - ) + schema(integer_schema('id', $nullable = false), string_schema('name', $nullable = true), bool_schema('active', $nullable = false)) )->fetch(); self::assertEquals( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), - Row::create(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), - Row::create(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false)), - ), + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('name', 'foo'), bool_entry('active', true)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', null), bool_entry('active', false)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('name', 'bar'), bool_entry('active', false))), $rows ); } @@ -600,16 +479,7 @@ public function test_until() : void public function test_void() : void { $rows = (new Flow())->process( - new Rows( - Row::create(int_entry('id', 1), str_entry('country', 'PL'), int_entry('age', 20)), - Row::create(int_entry('id', 2), str_entry('country', 'PL'), int_entry('age', 20)), - Row::create(int_entry('id', 3), str_entry('country', 'PL'), int_entry('age', 25)), - Row::create(int_entry('id', 4), str_entry('country', 'PL'), int_entry('age', 30)), - Row::create(int_entry('id', 5), str_entry('country', 'US'), int_entry('age', 40)), - Row::create(int_entry('id', 6), str_entry('country', 'US'), int_entry('age', 40)), - Row::create(int_entry('id', 7), str_entry('country', 'US'), int_entry('age', 45)), - Row::create(int_entry('id', 9), str_entry('country', 'US'), int_entry('age', 50)), - ) + \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(int_entry('id', 1), str_entry('country', 'PL'), int_entry('age', 20)), \Flow\ETL\DSL\row(int_entry('id', 2), str_entry('country', 'PL'), int_entry('age', 20)), \Flow\ETL\DSL\row(int_entry('id', 3), str_entry('country', 'PL'), int_entry('age', 25)), \Flow\ETL\DSL\row(int_entry('id', 4), str_entry('country', 'PL'), int_entry('age', 30)), \Flow\ETL\DSL\row(int_entry('id', 5), str_entry('country', 'US'), int_entry('age', 40)), \Flow\ETL\DSL\row(int_entry('id', 6), str_entry('country', 'US'), int_entry('age', 40)), \Flow\ETL\DSL\row(int_entry('id', 7), str_entry('country', 'US'), int_entry('age', 45)), \Flow\ETL\DSL\row(int_entry('id', 9), str_entry('country', 'US'), int_entry('age', 50))) ) ->rename('country', 'country_code') ->void() @@ -618,7 +488,7 @@ public function test_void() : void ->fetch(); self::assertEquals( - new Rows(), + \Flow\ETL\DSL\rows(), $rows ); } @@ -634,18 +504,7 @@ public function test_with_batch_size() : void */ public function extract(FlowContext $context) : \Generator { - yield new Rows( - Row::create(new IntegerEntry('id', 1)), - Row::create(new IntegerEntry('id', 2)), - Row::create(new IntegerEntry('id', 3)), - Row::create(new IntegerEntry('id', 4)), - Row::create(new IntegerEntry('id', 5)), - Row::create(new IntegerEntry('id', 6)), - Row::create(new IntegerEntry('id', 7)), - Row::create(new IntegerEntry('id', 8)), - Row::create(new IntegerEntry('id', 9)), - Row::create(new IntegerEntry('id', 10)), - ); + yield \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(integer_entry('id', 1)), \Flow\ETL\DSL\row(integer_entry('id', 2)), \Flow\ETL\DSL\row(integer_entry('id', 3)), \Flow\ETL\DSL\row(integer_entry('id', 4)), \Flow\ETL\DSL\row(integer_entry('id', 5)), \Flow\ETL\DSL\row(integer_entry('id', 6)), \Flow\ETL\DSL\row(integer_entry('id', 7)), \Flow\ETL\DSL\row(integer_entry('id', 8)), \Flow\ETL\DSL\row(integer_entry('id', 9)), \Flow\ETL\DSL\row(integer_entry('id', 10))); } } ) @@ -680,9 +539,9 @@ public function test_with_collecting() : void */ public function extract(FlowContext $context) : \Generator { - yield new Rows(Row::create(new IntegerEntry('id', 1))); - yield new Rows(Row::create(new IntegerEntry('id', 2))); - yield new Rows(Row::create(new IntegerEntry('id', 3))); + yield \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(integer_entry('id', 1))); + yield \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(integer_entry('id', 2))); + yield \Flow\ETL\DSL\rows(\Flow\ETL\DSL\row(integer_entry('id', 3))); } } ) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/ETLErrorHandlingTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/ETLErrorHandlingTest.php index 2cfdd15a7..7df5b4e04 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/ETLErrorHandlingTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/ETLErrorHandlingTest.php @@ -4,9 +4,11 @@ namespace Flow\ETL\Tests\Unit; +use function Flow\ETL\DSL\row; +use function Flow\ETL\DSL\{boolean_entry, integer_entry}; use function Flow\ETL\DSL\{ignore_error_handler, skip_rows_handler, string_entry, throw_error_handler}; -use Flow\ETL\Row\Entry\{BooleanEntry, DateTimeEntry, IntegerEntry}; -use Flow\ETL\{Extractor, Flow, FlowContext, Loader, Row, Rows, Tests\FlowTestCase, Transformer}; +use Flow\ETL\Row\Entry\{DateTimeEntry}; +use Flow\ETL\{Extractor, Flow, FlowContext, Loader, Rows, Tests\FlowTestCase, Transformer}; final class ETLErrorHandlingTest extends FlowTestCase { @@ -20,23 +22,9 @@ public function test_default_handler() : void */ public function extract(FlowContext $context) : \Generator { - yield new Rows( - Row::create( - new IntegerEntry('id', 101), - new BooleanEntry('deleted', false), - new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-24')), - string_entry('phase', null) - ) - ); - - yield new Rows( - Row::create( - new IntegerEntry('id', 102), - new BooleanEntry('deleted', true), - new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-25')), - string_entry('phase', null) - ) - ); + yield \Flow\ETL\DSL\rows(row(integer_entry('id', 101), boolean_entry('deleted', false), new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-24')), string_entry('phase', null))); + + yield \Flow\ETL\DSL\rows(row(integer_entry('id', 102), boolean_entry('deleted', true), new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-25')), string_entry('phase', null))); } }; @@ -77,23 +65,9 @@ public function test_ignore_error_handler() : void */ public function extract(FlowContext $context) : \Generator { - yield new Rows( - Row::create( - new IntegerEntry('id', 101), - new BooleanEntry('deleted', false), - new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-24')), - string_entry('phase', null) - ) - ); - - yield new Rows( - Row::create( - new IntegerEntry('id', 102), - new BooleanEntry('deleted', true), - new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-25')), - string_entry('phase', null) - ) - ); + yield \Flow\ETL\DSL\rows(row(integer_entry('id', 101), boolean_entry('deleted', false), new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-24')), string_entry('phase', null))); + + yield \Flow\ETL\DSL\rows(row(integer_entry('id', 102), boolean_entry('deleted', true), new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-25')), string_entry('phase', null))); } }; @@ -149,23 +123,9 @@ public function test_skip_rows_handler() : void */ public function extract(FlowContext $context) : \Generator { - yield new Rows( - Row::create( - new IntegerEntry('id', 101), - new BooleanEntry('deleted', false), - new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-24')), - string_entry('phase', null) - ) - ); - - yield new Rows( - Row::create( - new IntegerEntry('id', 102), - new BooleanEntry('deleted', true), - new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-25')), - string_entry('phase', null) - ) - ); + yield \Flow\ETL\DSL\rows(row(integer_entry('id', 101), boolean_entry('deleted', false), new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-24')), string_entry('phase', null))); + + yield \Flow\ETL\DSL\rows(row(integer_entry('id', 102), boolean_entry('deleted', true), new DateTimeEntry('expiration-date', new \DateTimeImmutable('2020-08-25')), string_entry('phase', null))); } }; diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/ChainExtractorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/ChainExtractorTest.php index 4cda94fa1..ba5e42b6d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/ChainExtractorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/ChainExtractorTest.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Tests\Unit\Extractor; use function Flow\ETL\DSL\{from_all, int_entry}; -use Flow\ETL\{Extractor, FlowContext, Row, Rows, Tests\FlowTestCase}; +use function Flow\ETL\DSL\{row, rows}; +use Flow\ETL\{Extractor, FlowContext, Tests\FlowTestCase}; final class ChainExtractorTest extends FlowTestCase { @@ -15,26 +16,21 @@ public function test_chain_extractor() : void new class implements Extractor { public function extract(FlowContext $context) : \Generator { - yield new Rows(Row::create(int_entry('id', 1))); - yield new Rows(Row::create(int_entry('id', 2))); + yield rows(row(int_entry('id', 1))); + yield rows(row(int_entry('id', 2))); } }, new class implements Extractor { public function extract(FlowContext $context) : \Generator { - yield new Rows(Row::create(int_entry('id', 3))); - yield new Rows(Row::create(int_entry('id', 4))); + yield rows(row(int_entry('id', 3))); + yield rows(row(int_entry('id', 4))); } }, ); self::assertExtractedRowsEquals( - new Rows( - Row::create(int_entry('id', 1)), - Row::create(int_entry('id', 2)), - Row::create(int_entry('id', 3)), - Row::create(int_entry('id', 4)), - ), + rows(row(int_entry('id', 1)), row(int_entry('id', 2)), row(int_entry('id', 3)), row(int_entry('id', 4))), $extractor ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/ChunkExtractorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/ChunkExtractorTest.php index b12a271f9..2fec665dd 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/ChunkExtractorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/ChunkExtractorTest.php @@ -4,7 +4,7 @@ namespace Flow\ETL\Tests\Unit\Extractor; -use Flow\ETL\Extractor\ChunkExtractor; +use function Flow\ETL\DSL\chunks_from; use Flow\ETL\Tests\Double\FakeExtractor; use Flow\ETL\Tests\FlowTestCase; @@ -12,7 +12,7 @@ final class ChunkExtractorTest extends FlowTestCase { public function test_chunk_extractor() : void { - $extractor = new ChunkExtractor(new FakeExtractor($batches = 100), $chunkSize = 10); + $extractor = chunks_from(new FakeExtractor($batches = 100), $chunkSize = 10); self::assertExtractedBatchesCount( $batches / $chunkSize, @@ -22,7 +22,7 @@ public function test_chunk_extractor() : void public function test_chunk_extractor_with_chunk_size_greater_than_() : void { - $extractor = new ChunkExtractor(new FakeExtractor(total: 20), chunkSize: 25); + $extractor = chunks_from(new FakeExtractor(total: 20), chunk_size: 25); self::assertExtractedBatchesCount( 1, diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/MemoryExtractorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/MemoryExtractorTest.php index fa311b6b0..ae3d2b86d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/MemoryExtractorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/MemoryExtractorTest.php @@ -4,25 +4,20 @@ namespace Flow\ETL\Tests\Unit\Extractor; +use function Flow\ETL\DSL\{config, flow_context, row, rows}; use function Flow\ETL\DSL\{from_memory, int_entry, str_entry, to_memory}; use Flow\ETL\Memory\ArrayMemory; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class MemoryExtractorTest extends FlowTestCase { public function test_memory_extractor() : void { - $rows = new Rows( - Row::create(int_entry('number', 1), str_entry('name', 'one')), - Row::create(int_entry('number', 2), str_entry('name', 'two')), - Row::create(int_entry('number', 3), str_entry('name', 'tree')), - Row::create(int_entry('number', 4), str_entry('name', 'four')), - Row::create(int_entry('number', 5), str_entry('name', 'five')), - ); + $rows = rows(row(int_entry('number', 1), str_entry('name', 'one')), row(int_entry('number', 2), str_entry('name', 'two')), row(int_entry('number', 3), str_entry('name', 'tree')), row(int_entry('number', 4), str_entry('name', 'four')), row(int_entry('number', 5), str_entry('name', 'five'))); $memory = new ArrayMemory(); - (to_memory($memory))->load($rows, new FlowContext(Config::default())); + (to_memory($memory))->load($rows, flow_context(config())); $extractor = from_memory($memory); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/PipelineExtractorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/PipelineExtractorTest.php index 1df8a31c5..a49522021 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/PipelineExtractorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/PipelineExtractorTest.php @@ -4,22 +4,17 @@ namespace Flow\ETL\Tests\Unit\Extractor; -use function Flow\ETL\DSL\int_entry; -use Flow\ETL\Extractor\{PipelineExtractor, RowsExtractor}; +use function Flow\ETL\DSL\{from_pipeline, from_rows, int_entry, row, rows}; use Flow\ETL\Pipeline\SynchronousPipeline; -use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class PipelineExtractorTest extends FlowTestCase { public function test_pipeline_extractor() : void { - $pipeline = new SynchronousPipeline(new RowsExtractor( - new Rows(Row::create(int_entry('id', 1)), Row::create(int_entry('id', 2))), - new Rows(Row::create(int_entry('id', 3)), Row::create(int_entry('id', 4))), - new Rows(Row::create(int_entry('id', 5)), Row::create(int_entry('id', 6))), - )); + $pipeline = new SynchronousPipeline(from_rows(rows(row(int_entry('id', 1)), row(int_entry('id', 2))), rows(row(int_entry('id', 3)), row(int_entry('id', 4))), rows(row(int_entry('id', 5)), row(int_entry('id', 6))))); - $extractor = new PipelineExtractor($pipeline); + $extractor = from_pipeline($pipeline); self::assertExtractedBatchesCount(3, $extractor); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/RowsExtractorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/RowsExtractorTest.php index 245162db8..17e83af0e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/RowsExtractorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/RowsExtractorTest.php @@ -5,19 +5,14 @@ namespace Flow\ETL\Tests\Unit\Extractor; use function Flow\ETL\DSL\{from_rows, int_entry, str_entry}; -use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; +use function Flow\ETL\DSL\{row, rows}; +use Flow\ETL\{Tests\FlowTestCase}; final class RowsExtractorTest extends FlowTestCase { public function test_process_extractor() : void { - $rows = new Rows( - Row::create(int_entry('number', 1), str_entry('name', 'one')), - Row::create(int_entry('number', 2), str_entry('name', 'two')), - Row::create(int_entry('number', 3), str_entry('name', 'tree')), - Row::create(int_entry('number', 4), str_entry('name', 'four')), - Row::create(int_entry('number', 5), str_entry('name', 'five')), - ); + $rows = rows(row(int_entry('number', 1), str_entry('name', 'one')), row(int_entry('number', 2), str_entry('name', 'two')), row(int_entry('number', 3), str_entry('name', 'tree')), row(int_entry('number', 4), str_entry('name', 'four')), row(int_entry('number', 5), str_entry('name', 'five'))); $extractor = from_rows($rows); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/SequenceExtractorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/SequenceExtractorTest.php index 262ee74ff..2800d7636 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/SequenceExtractorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/SequenceExtractorTest.php @@ -9,7 +9,8 @@ from_sequence_date_period, from_sequence_date_period_recurrences, from_sequence_number}; -use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; +use function Flow\ETL\DSL\{row, rows}; +use Flow\ETL\{Tests\FlowTestCase}; final class SequenceExtractorTest extends FlowTestCase { @@ -18,17 +19,7 @@ public function test_extracting_from_date_period() : void $extractor = from_sequence_date_period('day', new \DateTimeImmutable('2023-01-01'), new \DateInterval('P1D'), new \DateTimeImmutable('2023-01-11'), \DatePeriod::EXCLUDE_START_DATE); self::assertExtractedRowsEquals( - new Rows( - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-02'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-03'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-04'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-05'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-06'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-07'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-08'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-09'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-10'))), - ), + rows(row(date_entry('day', new \DateTimeImmutable('2023-01-02'))), row(date_entry('day', new \DateTimeImmutable('2023-01-03'))), row(date_entry('day', new \DateTimeImmutable('2023-01-04'))), row(date_entry('day', new \DateTimeImmutable('2023-01-05'))), row(date_entry('day', new \DateTimeImmutable('2023-01-06'))), row(date_entry('day', new \DateTimeImmutable('2023-01-07'))), row(date_entry('day', new \DateTimeImmutable('2023-01-08'))), row(date_entry('day', new \DateTimeImmutable('2023-01-09'))), row(date_entry('day', new \DateTimeImmutable('2023-01-10')))), $extractor ); } @@ -38,18 +29,7 @@ public function test_extracting_from_date_period_recurrences() : void $extractor = from_sequence_date_period_recurrences('day', new \DateTimeImmutable('2023-01-01'), new \DateInterval('P1D'), 10, \DatePeriod::EXCLUDE_START_DATE); self::assertExtractedRowsEquals( - new Rows( - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-02'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-03'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-04'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-05'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-06'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-07'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-08'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-09'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-10'))), - Row::create(date_entry('day', new \DateTimeImmutable('2023-01-11'))), - ), + rows(row(date_entry('day', new \DateTimeImmutable('2023-01-02'))), row(date_entry('day', new \DateTimeImmutable('2023-01-03'))), row(date_entry('day', new \DateTimeImmutable('2023-01-04'))), row(date_entry('day', new \DateTimeImmutable('2023-01-05'))), row(date_entry('day', new \DateTimeImmutable('2023-01-06'))), row(date_entry('day', new \DateTimeImmutable('2023-01-07'))), row(date_entry('day', new \DateTimeImmutable('2023-01-08'))), row(date_entry('day', new \DateTimeImmutable('2023-01-09'))), row(date_entry('day', new \DateTimeImmutable('2023-01-10'))), row(date_entry('day', new \DateTimeImmutable('2023-01-11')))), $extractor ); } @@ -59,15 +39,7 @@ public function test_extracting_from_numbers_range() : void $extractor = from_sequence_number('num', 0, 10, 1.5); self::assertExtractedRowsEquals( - new Rows( - Row::create(float_entry('num', 0)), - Row::create(float_entry('num', 1.5)), - Row::create(float_entry('num', 3)), - Row::create(float_entry('num', 4.5)), - Row::create(float_entry('num', 6)), - Row::create(float_entry('num', 7.5)), - Row::create(float_entry('num', 9)), - ), + rows(row(float_entry('num', 0)), row(float_entry('num', 1.5)), row(float_entry('num', 3)), row(float_entry('num', 4.5)), row(float_entry('num', 6)), row(float_entry('num', 7.5)), row(float_entry('num', 9))), $extractor ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Formatter/ASCII/ASCIIHeadersTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Formatter/ASCII/ASCIIHeadersTest.php index 29c02d859..9d889ace5 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Formatter/ASCII/ASCIIHeadersTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Formatter/ASCII/ASCIIHeadersTest.php @@ -5,17 +5,15 @@ namespace Flow\ETL\Tests\Unit\Formatter\ASCII; use function Flow\ETL\DSL\{float_entry, int_entry}; +use function Flow\ETL\DSL\{row, rows}; use Flow\ETL\Formatter\ASCII\{ASCIIHeaders, Body, Headers}; -use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class ASCIIHeadersTest extends FlowTestCase { public function test_printing_ascii_headers() : void { - $rows = new Rows( - Row::create(int_entry('id', 1), float_entry('value', 1.4)), - Row::create(int_entry('id', 2), float_entry('value', 3.4)) - ); + $rows = rows(row(int_entry('id', 1), float_entry('value', 1.4)), row(int_entry('id', 2), float_entry('value', 3.4))); $headers = new ASCIIHeaders( new Headers($rows), diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Formatter/ASCIITableTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Formatter/ASCIITableTest.php index c4985aebd..279aa680f 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Formatter/ASCIITableTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Formatter/ASCIITableTest.php @@ -5,22 +5,15 @@ namespace Flow\ETL\Tests\Unit\Formatter; use function Flow\ETL\DSL\{int_entry, str_entry}; +use function Flow\ETL\DSL\{row, rows}; use Flow\ETL\Formatter\ASCII\ASCIITable; -use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class ASCIITableTest extends FlowTestCase { public function test_ascii_table_with_mb_strings() : void { - $rows = new Rows( - Row::create(str_entry('row', '[498][534]/Wiele z tego,|/co niegdyś było, przepadło.')), - Row::create(str_entry('row', '[540][572]/A nie żyje już nikt z tych,|/którzy by o tym pamiętali.')), - Row::create(str_entry('row', '[572][647]WŁADCA PIERŚCIENI')), - Row::create(str_entry('row', '[701][741]/Wszystko zaczęło się|/od wykucia Pierścieni Władzy.')), - Row::create(str_entry('row', '[742][762]/Trzy zostały dane elfom...')), - Row::create(str_entry('row', '[763][805]/nieśmiertelnym, najmędrszym|/i najbliższym magii spośród wszystkich ras.')), - Row::create(str_entry('row', '[816][853]/Siedem - władcom krasnoludów,|/wspaniałym górnikom')), - ); + $rows = rows(row(str_entry('row', '[498][534]/Wiele z tego,|/co niegdyś było, przepadło.')), row(str_entry('row', '[540][572]/A nie żyje już nikt z tych,|/którzy by o tym pamiętali.')), row(str_entry('row', '[572][647]WŁADCA PIERŚCIENI')), row(str_entry('row', '[701][741]/Wszystko zaczęło się|/od wykucia Pierścieni Władzy.')), row(str_entry('row', '[742][762]/Trzy zostały dane elfom...')), row(str_entry('row', '[763][805]/nieśmiertelnym, najmędrszym|/i najbliższym magii spośród wszystkich ras.')), row(str_entry('row', '[816][853]/Siedem - władcom krasnoludów,|/wspaniałym górnikom'))); self::assertStringContainsString( <<<'TABLE' @@ -42,15 +35,7 @@ public function test_ascii_table_with_mb_strings() : void public function test_ascii_table_with_mb_strings_truncate() : void { - $rows = new Rows( - Row::create(str_entry('row', '[498][534]/Wiele z tego,|/co niegdyś było, przepadło.')), - Row::create(str_entry('row', '[540][572]/A nie żyje już nikt z tych,|/którzy by o tym pamiętali.')), - Row::create(str_entry('row', '[572][647]WŁADCA PIERŚCIENI')), - Row::create(str_entry('row', '[701][741]/Wszystko zaczęło się|/od wykucia Pierścieni Władzy.')), - Row::create(str_entry('row', '[742][762]/Trzy zostały dane elfom...')), - Row::create(str_entry('row', '[763][805]/nieśmiertelnym, najmędrszym|/i najbliższym magii spośród wszystkich ras.')), - Row::create(str_entry('row', '[816][853]/Siedem - władcom krasnoludów,|/wspaniałym górnikom')), - ); + $rows = rows(row(str_entry('row', '[498][534]/Wiele z tego,|/co niegdyś było, przepadło.')), row(str_entry('row', '[540][572]/A nie żyje już nikt z tych,|/którzy by o tym pamiętali.')), row(str_entry('row', '[572][647]WŁADCA PIERŚCIENI')), row(str_entry('row', '[701][741]/Wszystko zaczęło się|/od wykucia Pierścieni Władzy.')), row(str_entry('row', '[742][762]/Trzy zostały dane elfom...')), row(str_entry('row', '[763][805]/nieśmiertelnym, najmędrszym|/i najbliższym magii spośród wszystkich ras.')), row(str_entry('row', '[816][853]/Siedem - władcom krasnoludów,|/wspaniałym górnikom'))); self::assertStringContainsString( <<<'TABLE' @@ -72,15 +57,7 @@ public function test_ascii_table_with_mb_strings_truncate() : void public function test_ascii_table_with_non_symmetric_entries() : void { - $rows = new Rows( - Row::create(str_entry('row', '[498][534]/Wiele z tego,|/co niegdyś było, przepadło.')), - Row::create(str_entry('row', '[540][572]/A nie żyje już nikt z tych,|/którzy by o tym pamiętali.')), - Row::create(str_entry('row', '[572][647]WŁADCA PIERŚCIENI')), - Row::create(str_entry('row', '[701][741]/Wszystko zaczęło się|/od wykucia Pierścieni Władzy.')), - Row::create(str_entry('row', '[742][762]/Trzy zostały dane elfom...')), - Row::create(str_entry('row', '[763][805]/nieśmiertelnym, najmędrszym|/i najbliższym magii spośród wszystkich ras.')), - Row::create(str_entry('test', '[816][853]/Siedem - władcom krasnoludów,|/wspaniałym górnikom')), - ); + $rows = rows(row(str_entry('row', '[498][534]/Wiele z tego,|/co niegdyś było, przepadło.')), row(str_entry('row', '[540][572]/A nie żyje już nikt z tych,|/którzy by o tym pamiętali.')), row(str_entry('row', '[572][647]WŁADCA PIERŚCIENI')), row(str_entry('row', '[701][741]/Wszystko zaczęło się|/od wykucia Pierścieni Władzy.')), row(str_entry('row', '[742][762]/Trzy zostały dane elfom...')), row(str_entry('row', '[763][805]/nieśmiertelnym, najmędrszym|/i najbliższym magii spośród wszystkich ras.')), row(str_entry('test', '[816][853]/Siedem - władcom krasnoludów,|/wspaniałym górnikom'))); self::assertStringContainsString( <<<'TABLE' @@ -115,10 +92,7 @@ public function test_ascii_table_with_single_row() : void | 2 | PL | +----+------+ TABLE, - (new ASCIITable(new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'EN')), - Row::create(int_entry('id', 2), str_entry('name', 'PL')), - )))->print(false) + (new ASCIITable(rows(row(int_entry('id', 1), str_entry('name', 'EN')), row(int_entry('id', 2), str_entry('name', 'PL')))))->print(false) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AllTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AllTest.php index 4d5c57c7a..e23cad7a6 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AllTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AllTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{all, lit, ref, str_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class AllTest extends FlowTestCase @@ -13,35 +13,35 @@ final class AllTest extends FlowTestCase public function test_all_expression_on_is_null_expression() : void { self::assertTrue( - all(ref('value')->isNull())->eval(Row::create(str_entry('value', null))) + all(ref('value')->isNull())->eval(row(str_entry('value', null))) ); } public function test_all_expression_on_multiple_boolean_values() : void { self::assertTrue( - all(lit(true), lit(true), lit(true))->eval(Row::create()) + all(lit(true), lit(true), lit(true))->eval(row()) ); } public function test_all_expression_on_multiple_random_boolean_values() : void { self::assertFalse( - all(lit(true), lit(false), lit(true))->eval(Row::create()) + all(lit(true), lit(false), lit(true))->eval(row()) ); } public function test_all_function_on_boolean_false_value() : void { self::assertFalse( - all(lit(false))->eval(Row::create()) + all(lit(false))->eval(row()) ); } public function test_all_function_on_boolean_true_value() : void { self::assertTrue( - all(lit(true))->eval(Row::create()) + all(lit(true))->eval(row()) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AnyTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AnyTest.php index 09db75af7..449a1ae07 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AnyTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AnyTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{any, lit, ref, str_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class AnyTest extends FlowTestCase @@ -13,28 +13,28 @@ final class AnyTest extends FlowTestCase public function test_any_expression_on_boolean_false_value() : void { self::assertFalse( - any(lit(false))->eval(Row::create()) + any(lit(false))->eval(row()) ); } public function test_any_expression_on_boolean_true_value() : void { self::assertTrue( - any(lit(true))->eval(Row::create()) + any(lit(true))->eval(row()) ); } public function test_any_expression_on_is_null_expression() : void { self::assertTrue( - any(ref('value')->isNull())->eval(Row::create(str_entry('value', null))) + any(ref('value')->isNull())->eval(row(str_entry('value', null))) ); } public function test_any_expression_on_multiple_boolean_values() : void { self::assertTrue( - any(lit(false), lit(true), lit(false))->eval(Row::create()) + any(lit(false), lit(true), lit(false))->eval(row()) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayExpandTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayExpandTest.php index b76374151..65e9c066f 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayExpandTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayExpandTest.php @@ -4,18 +4,16 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{array_expand, int_entry, json_entry, ref}; use Flow\ETL\Function\ArrayExpand\ArrayExpand; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ArrayExpandTest extends FlowTestCase { public function test_expand_both() : void { - $row = Row::create( - json_entry('array', ['a' => 1, 'b' => 2, 'c' => 3]), - ); + $row = row(json_entry('array', ['a' => 1, 'b' => 2, 'c' => 3])); self::assertSame( [ @@ -29,9 +27,7 @@ public function test_expand_both() : void public function test_expand_keys() : void { - $row = Row::create( - json_entry('array', ['a' => 1, 'b' => 2, 'c' => 3]), - ); + $row = row(json_entry('array', ['a' => 1, 'b' => 2, 'c' => 3])); self::assertSame( ['a', 'b', 'c'], @@ -41,9 +37,7 @@ public function test_expand_keys() : void public function test_expand_values() : void { - $row = Row::create( - json_entry('array', ['a' => 1, 'b' => 2, 'c' => 3]), - ); + $row = row(json_entry('array', ['a' => 1, 'b' => 2, 'c' => 3])); self::assertSame( ['a' => 1, 'b' => 2, 'c' => 3], @@ -54,7 +48,7 @@ public function test_expand_values() : void public function test_for_not_array_entry() : void { self::assertNull( - array_expand(ref('integer_entry'))->eval(Row::create(int_entry('integer_entry', 1))) + array_expand(ref('integer_entry'))->eval(row(int_entry('integer_entry', 1))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetCollectionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetCollectionTest.php index 77f04634a..831a13131 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetCollectionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetCollectionTest.php @@ -4,59 +4,53 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{array_get_collection, array_get_collection_first, int_entry, json_entry, ref}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ArrayGetCollectionTest extends FlowTestCase { public function test_for_not_array_entry() : void { - $row = Row::create( - int_entry('invalid_entry', 1), - ); + $row = row(int_entry('invalid_entry', 1)); self::assertNull(array_get_collection(ref('invalid_entry'), ['id'])->eval($row)); } public function test_getting_keys_from_simple_array() : void { - $row = Row::create( - json_entry( - 'array_entry', - [ - 'id' => 1, - 'status' => 'PENDING', - 'enabled' => true, - 'array' => ['foo' => 'bar'], - ] - ), - ); + $row = row(json_entry( + 'array_entry', + [ + 'id' => 1, + 'status' => 'PENDING', + 'enabled' => true, + 'array' => ['foo' => 'bar'], + ] + )); self::assertNull(array_get_collection(ref('array_entry'), ['id'])->eval($row)); } public function test_getting_specific_keys_from_collection_of_array() : void { - $row = Row::create( - json_entry( - 'array_entry', + $row = row(json_entry( + 'array_entry', + [ [ - [ - 'id' => 1, - 'status' => 'PENDING', - 'enabled' => true, - 'array' => ['foo' => 'bar'], - ], - [ - 'id' => 2, - 'status' => 'NEW', - 'enabled' => true, - 'array' => ['foo' => 'bar'], - ], - ] - ), - ); + 'id' => 1, + 'status' => 'PENDING', + 'enabled' => true, + 'array' => ['foo' => 'bar'], + ], + [ + 'id' => 2, + 'status' => 'NEW', + 'enabled' => true, + 'array' => ['foo' => 'bar'], + ], + ] + )); self::assertEquals( [ @@ -69,27 +63,25 @@ public function test_getting_specific_keys_from_collection_of_array() : void public function test_getting_specific_keys_from_first_element_in_collection_of_array() : void { - $row = Row::create( - json_entry( - 'array_entry', + $row = row(json_entry( + 'array_entry', + [ [ - [ - 'parent_id' => 1, - 'id' => 1, - 'status' => 'PENDING', - 'enabled' => true, - 'array' => ['foo' => 'bar'], - ], - [ - 'parent_id' => 1, - 'id' => 2, - 'status' => 'NEW', - 'enabled' => true, - 'array' => ['foo' => 'bar'], - ], - ] - ), - ); + 'parent_id' => 1, + 'id' => 1, + 'status' => 'PENDING', + 'enabled' => true, + 'array' => ['foo' => 'bar'], + ], + [ + 'parent_id' => 1, + 'id' => 2, + 'status' => 'NEW', + 'enabled' => true, + 'array' => ['foo' => 'bar'], + ], + ] + )); self::assertEquals( [ @@ -101,27 +93,25 @@ public function test_getting_specific_keys_from_first_element_in_collection_of_a public function test_getting_specific_keys_from_first_element_in_collection_of_array_when_first_index_does_not_exists() : void { - $row = Row::create( - json_entry( - 'array_entry', - [ - 2 => [ - 'parent_id' => 1, - 'id' => 1, - 'status' => 'PENDING', - 'enabled' => true, - 'array' => ['foo' => 'bar'], - ], - 3 => [ - 'parent_id' => 1, - 'id' => 2, - 'status' => 'NEW', - 'enabled' => true, - 'array' => ['foo' => 'bar'], - ], - ] - ), - ); + $row = row(json_entry( + 'array_entry', + [ + 2 => [ + 'parent_id' => 1, + 'id' => 1, + 'status' => 'PENDING', + 'enabled' => true, + 'array' => ['foo' => 'bar'], + ], + 3 => [ + 'parent_id' => 1, + 'id' => 2, + 'status' => 'NEW', + 'enabled' => true, + 'array' => ['foo' => 'bar'], + ], + ] + )); self::assertEquals( [ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetTest.php index 71ab02686..eb3eb4e37 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetTest.php @@ -4,44 +4,40 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{array_exists, array_get, int_entry, json_entry, ref}; use Flow\ArrayDot\Exception\InvalidPathException; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ArrayGetTest extends FlowTestCase { public function test_array_access_for_not_array_entry() : void { - self::assertNull(array_get(ref('integer_entry'), 'invalid_path')->eval(Row::create(int_entry('integer_entry', 1)))); - self::assertFalse(array_exists(ref('integer_entry'), 'invalid_path')->eval(Row::create(int_entry('integer_entry', 1)))); + self::assertNull(array_get(ref('integer_entry'), 'invalid_path')->eval(row(int_entry('integer_entry', 1)))); + self::assertFalse(array_exists(ref('integer_entry'), 'invalid_path')->eval(row(int_entry('integer_entry', 1)))); } public function test_array_accessor_transformer() : void { - $row = Row::create( - json_entry('array_entry', [ - 'id' => 1, - 'status' => 'PENDING', - 'enabled' => true, - 'array' => ['foo' => 'bar'], - ]), - ); + $row = row(json_entry('array_entry', [ + 'id' => 1, + 'status' => 'PENDING', + 'enabled' => true, + 'array' => ['foo' => 'bar'], + ])); self::assertEquals('bar', array_get(ref('array_entry'), 'array.foo')->eval($row)); self::assertTrue(array_exists(ref('array_entry'), 'array.foo')->eval($row)); } public function test_array_accessor_transformer_with_invalid_and_without_strict_path() : void { - $row = Row::create( - json_entry('array_entry', [ - 'id' => 1, - 'status' => 'PENDING', - 'enabled' => true, - 'datetime' => new \DateTimeImmutable('2020-01-01 00:00:00 UTC'), - 'array' => ['foo' => 'bar'], - ]), - ); + $row = row(json_entry('array_entry', [ + 'id' => 1, + 'status' => 'PENDING', + 'enabled' => true, + 'datetime' => new \DateTimeImmutable('2020-01-01 00:00:00 UTC'), + 'array' => ['foo' => 'bar'], + ])); self::assertNull(array_get(ref('array_entry'), '?invalid_path')->eval($row)); self::assertTrue(array_exists(ref('array_entry'), '?invalid_path')->eval($row)); self::assertFalse(array_exists(ref('array_entry'), 'invalid_path')->eval($row)); @@ -53,15 +49,13 @@ public function test_array_accessor_transformer_with_invalid_but_strict_path() : $this->expectExceptionMessage('Path "invalid_path" does not exists in array '); array_get(ref('array_entry'), 'invalid_path')->eval( - Row::create( - json_entry('array_entry', [ - 'id' => 1, - 'status' => 'PENDING', - 'enabled' => true, - 'datetime' => new \DateTimeImmutable('2020-01-01 00:00:00 UTC'), - 'array' => ['foo' => 'bar'], - ]), - ), + row(json_entry('array_entry', [ + 'id' => 1, + 'status' => 'PENDING', + 'enabled' => true, + 'datetime' => new \DateTimeImmutable('2020-01-01 00:00:00 UTC'), + 'array' => ['foo' => 'bar'], + ])), ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayKeyRenameTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayKeyRenameTest.php index 1a9af1b5e..5693316bd 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayKeyRenameTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayKeyRenameTest.php @@ -4,37 +4,32 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{array_key_rename, int_entry, json_entry, ref}; use Flow\ArrayDot\Exception\InvalidPathException; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ArrayKeyRenameTest extends FlowTestCase { public function test_for_not_array_entry() : void { - $row = Row::create( - int_entry('integer_entry', 1), - ); + $row = row(int_entry('integer_entry', 1)); self::assertNull(array_key_rename(ref('integer_entry'), 'invalid_path', 'new_name')->eval($row)); } public function test_renames_array_entry_keys_in_multiple_array_entry() : void { - $row = Row::create( - json_entry('customer', [ - 'first' => 'John', - 'last' => 'Snow', - ]), - json_entry('shipping', [ - 'address' => [ - 'line' => '3644 Clement Street', - 'city' => 'Atalanta', - ], - 'estimated_delivery_date' => new \DateTimeImmutable('2023-04-01 10:00:00 UTC'), - ]), - ); + $row = row(json_entry('customer', [ + 'first' => 'John', + 'last' => 'Snow', + ]), json_entry('shipping', [ + 'address' => [ + 'line' => '3644 Clement Street', + 'city' => 'Atalanta', + ], + 'estimated_delivery_date' => new \DateTimeImmutable('2023-04-01 10:00:00 UTC'), + ])); self::assertEquals( [ @@ -59,14 +54,12 @@ public function test_renames_array_entry_keys_in_multiple_array_entry() : void public function test_renames_array_entry_keys_in_single_array_entry() : void { - $row = Row::create( - json_entry('array_entry', [ - 'id' => 1, - 'status' => 'PENDING', - 'enabled' => true, - 'array' => ['foo' => 'bar'], - ]), - ); + $row = row(json_entry('array_entry', [ + 'id' => 1, + 'status' => 'PENDING', + 'enabled' => true, + 'array' => ['foo' => 'bar'], + ])); self::assertEquals( [ @@ -81,14 +74,12 @@ public function test_renames_array_entry_keys_in_single_array_entry() : void public function test_throws_exception_for_invalid_path() : void { - $row = Row::create( - json_entry('array_entry', [ - 'id' => 1, - 'status' => 'PENDING', - 'enabled' => true, - 'array' => ['foo' => 'bar'], - ]), - ); + $row = row(json_entry('array_entry', [ + 'id' => 1, + 'status' => 'PENDING', + 'enabled' => true, + 'array' => ['foo' => 'bar'], + ])); $this->expectException(InvalidPathException::class); $this->expectExceptionMessage('Path "invalid_path" does not exists in array '); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayKeysStyleConverterTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayKeysStyleConverterTest.php index c519d433a..963b47ced 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayKeysStyleConverterTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayKeysStyleConverterTest.php @@ -4,9 +4,9 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{array_keys_style_convert, int_entry, json_entry, ref}; use Flow\ETL\Exception\InvalidArgumentException; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ArrayKeysStyleConverterTest extends FlowTestCase @@ -16,47 +16,38 @@ public function test_for_invalid_style() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Unrecognized style invalid, please use one of following:'); - $row = Row::create( - json_entry('invalid_entry', []), - ); + $row = row(json_entry('invalid_entry', [])); array_keys_style_convert(ref('invalid_entry'), 'invalid')->eval($row); } public function test_for_not_array_entry() : void { - $row = Row::create( - int_entry('invalid_entry', 1), - ); + $row = row(int_entry('invalid_entry', 1)); self::assertNull(array_keys_style_convert(ref('invalid_entry'), 'snake')->eval($row)); } public function test_transforms_case_style_for_all_keys_in_array_entry() : void { - $row = Row::create( - new Row\Entry\JsonEntry( - 'arrayEntry', - [ - 'itemId' => 1, - 'itemStatus' => 'PENDING', - 'itemEnabled' => true, - 'itemVariants' => [ - 'variantStatuses' => [ - [ - 'statusId' => 1000, - 'statusName' => 'NEW', - ], - [ - 'statusId' => 2000, - 'statusName' => 'ACTIVE', - ], - ], - 'variantName' => 'Variant Name', + $row = row(json_entry('arrayEntry', [ + 'itemId' => 1, + 'itemStatus' => 'PENDING', + 'itemEnabled' => true, + 'itemVariants' => [ + 'variantStatuses' => [ + [ + 'statusId' => 1000, + 'statusName' => 'NEW', + ], + [ + 'statusId' => 2000, + 'statusName' => 'ACTIVE', ], ], - ) - ); + 'variantName' => 'Variant Name', + ], + ])); self::assertEquals( [ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayMergeCollectionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayMergeCollectionTest.php index d0552b3a8..e6d8bdfde 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayMergeCollectionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayMergeCollectionTest.php @@ -4,52 +4,46 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{array_merge_collection, int_entry, json_entry, ref}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ArrayMergeCollectionTest extends FlowTestCase { public function test_attempt_of_merging_collection_where_not_every_element_is_array() : void { - $row = Row::create( - json_entry( - 'array_entry', - [ - ['foo' => 'bar'], - 1, - ] - ), - ); + $row = row(json_entry( + 'array_entry', + [ + ['foo' => 'bar'], + 1, + ] + )); self::assertNull(array_merge_collection(ref('array_entry'))->eval($row)); } public function test_for_not_array_entry() : void { - $row = Row::create( - int_entry('invalid_entry', 1), - ); + $row = row(int_entry('invalid_entry', 1)); self::assertNull(array_merge_collection(ref('invalid_entry'))->eval($row)); } public function test_merging_collection_of_arrays() : void { - $row = Row::create( - json_entry( - 'array_entry', + $row = row(json_entry( + 'array_entry', + [ [ - [ - 1, - ], - [ - 2, - ], - [], - ] - ), - ); + 1, + ], + [ + 2, + ], + [], + ] + )); self::assertEquals( [1, 2], diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayMergeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayMergeTest.php index 2b83955a3..02a071dfa 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayMergeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayMergeTest.php @@ -4,9 +4,9 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{int_entry, json_entry, lit, ref}; use Flow\ETL\Function\ArrayMerge; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ArrayMergeTest extends FlowTestCase @@ -17,10 +17,7 @@ public function test_array_merge_two_array_row_entries() : void ['a' => 1, 'b' => 2], ref('a')->arrayMerge(ref('b')) ->eval( - Row::create( - json_entry('a', ['a' => 1]), - json_entry('b', ['b' => 2]), - ), + row(json_entry('a', ['a' => 1]), json_entry('b', ['b' => 2])), ) ); } @@ -32,7 +29,7 @@ public function test_array_merge_two_lit_functions() : void lit(['b' => 2]) ); - self::assertSame(['a' => 1, 'b' => 2], $function->eval(Row::create())); + self::assertSame(['a' => 1, 'b' => 2], $function->eval(row())); } public function test_array_merge_when_left_side_is_not_an_array() : void @@ -40,10 +37,7 @@ public function test_array_merge_when_left_side_is_not_an_array() : void self::assertNull( ref('a')->arrayMerge(ref('b')) ->eval( - Row::create( - int_entry('a', 1), - json_entry('b', ['b' => 2]), - ), + row(int_entry('a', 1), json_entry('b', ['b' => 2])), ) ); } @@ -53,10 +47,7 @@ public function test_array_merge_when_right_side_is_not_an_array() : void self::assertNull( ref('a')->arrayMerge(ref('b')) ->eval( - Row::create( - json_entry('a', ['a' => 1]), - int_entry('b', 2), - ), + row(json_entry('a', ['a' => 1]), int_entry('b', 2)), ) ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayReverseTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayReverseTest.php index 1d89786ad..15802cdac 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayReverseTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayReverseTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{int_entry, json_entry, ref}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ArrayReverseTest extends FlowTestCase @@ -16,9 +16,7 @@ public function test_array_reverse_array_entry() : void [5, 3, 10, 4], ref('a')->arrayReverse() ->eval( - Row::create( - json_entry('a', [4, 10, 3, 5]), - ), + row(json_entry('a', [4, 10, 3, 5])), ) ); } @@ -28,9 +26,7 @@ public function test_array_reverse_non_array_entry() : void self::assertNull( ref('a')->arrayReverse() ->eval( - Row::create( - int_entry('a', 123), - ), + row(int_entry('a', 123)), ) ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArraySortTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArraySortTest.php index 7c5974546..5d2a30bf3 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArraySortTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArraySortTest.php @@ -4,9 +4,9 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{json_entry, ref, str_entry}; use Flow\ETL\Function\ArraySort\Sort; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ArraySortTest extends FlowTestCase @@ -14,8 +14,8 @@ final class ArraySortTest extends FlowTestCase public function test_sorting_big_arrays() : void { self::assertSame( - ref('array')->arraySort()->eval(Row::create(json_entry('array', \json_decode($this->jsonDifferentOrder(), true, 512, JSON_THROW_ON_ERROR)))), - ref('array')->arraySort()->eval(Row::create(json_entry('array', \json_decode($this->json(), true, 512, JSON_THROW_ON_ERROR)))) + ref('array')->arraySort()->eval(row(json_entry('array', \json_decode($this->jsonDifferentOrder(), true, 512, JSON_THROW_ON_ERROR)))), + ref('array')->arraySort()->eval(row(json_entry('array', \json_decode($this->json(), true, 512, JSON_THROW_ON_ERROR)))) ); } @@ -31,20 +31,18 @@ public function test_sorting_nested_array_using_asort_algo() : void ], ], ], - ref('array')->arraySort(Sort::asort)->eval(Row::create( - json_entry( - 'array', - [ - 'a' => [ - 'b' => [ - 'e' => 'f', - 'c' => 'd', - ], - 'g' => 'h', + ref('array')->arraySort(Sort::asort)->eval(row(json_entry( + 'array', + [ + 'a' => [ + 'b' => [ + 'e' => 'f', + 'c' => 'd', ], - ] - ) - )) + 'g' => 'h', + ], + ] + ))) ); } @@ -60,28 +58,26 @@ public function test_sorting_nested_associative_array() : void 'g' => 'h', ], ], - ref('array')->arraySort(Sort::ksort)->eval(Row::create( - json_entry( - 'array', - [ - 'a' => [ - 'g' => 'h', - 'b' => [ - 'e' => 'f', - 'c' => 'd', - ], - + ref('array')->arraySort(Sort::ksort)->eval(row(json_entry( + 'array', + [ + 'a' => [ + 'g' => 'h', + 'b' => [ + 'e' => 'f', + 'c' => 'd', ], - ] - ) - )) + + ], + ] + ))) ); } public function test_sorting_non_array_value() : void { self::assertNull( - ref('array')->arraySort()->eval(Row::create(str_entry('array', 'string'))) + ref('array')->arraySort()->eval(row(str_entry('array', 'string'))) ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayUnpackTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayUnpackTest.php index 74b078d30..eb73075a7 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayUnpackTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayUnpackTest.php @@ -4,23 +4,20 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{int_entry, json_entry, ref}; use Flow\ETL\Function\ArrayUnpack; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ArrayUnpackTest extends FlowTestCase { public function test_array_unpack() : void { - $row = Row::create( - int_entry('id', 1), - json_entry('array_entry', [ - 'status' => 'PENDING', - 'enabled' => true, - 'array' => ['foo' => 'bar'], - ]), - ); + $row = row(int_entry('id', 1), json_entry('array_entry', [ + 'status' => 'PENDING', + 'enabled' => true, + 'array' => ['foo' => 'bar'], + ])); self::assertSame( [ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AverageTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AverageTest.php index 59e849f7a..7834245c8 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AverageTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AverageTest.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Tests\Unit\Function; use function Flow\ETL\DSL\{average, int_entry, ref, str_entry, window}; -use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; +use function Flow\ETL\DSL\{row, rows}; +use Flow\ETL\{Tests\FlowTestCase}; final class AverageTest extends FlowTestCase { @@ -13,11 +14,11 @@ public function test_aggregation_average_from_numeric_values() : void { $aggregator = average(ref('int')); - $aggregator->aggregate(Row::create(str_entry('int', '10'))); - $aggregator->aggregate(Row::create(str_entry('int', '20'))); - $aggregator->aggregate(Row::create(str_entry('int', '30'))); - $aggregator->aggregate(Row::create(str_entry('int', '25'))); - $aggregator->aggregate(Row::create(str_entry('not_int', null))); + $aggregator->aggregate(row(str_entry('int', '10'))); + $aggregator->aggregate(row(str_entry('int', '20'))); + $aggregator->aggregate(row(str_entry('int', '30'))); + $aggregator->aggregate(row(str_entry('int', '25'))); + $aggregator->aggregate(row(str_entry('not_int', null))); self::assertSame( 21.25, @@ -29,10 +30,10 @@ public function test_aggregation_average_including_null_value() : void { $aggregator = average(ref('int')); - $aggregator->aggregate(Row::create(int_entry('int', 10))); - $aggregator->aggregate(Row::create(int_entry('int', 20))); - $aggregator->aggregate(Row::create(int_entry('int', 30))); - $aggregator->aggregate(Row::create(int_entry('int', null))); + $aggregator->aggregate(row(int_entry('int', 10))); + $aggregator->aggregate(row(int_entry('int', 20))); + $aggregator->aggregate(row(int_entry('int', 30))); + $aggregator->aggregate(row(int_entry('int', null))); self::assertSame( 20, @@ -44,10 +45,10 @@ public function test_aggregation_average_with_float_result() : void { $aggregator = average(ref('int')); - $aggregator->aggregate(Row::create(int_entry('int', 10))); - $aggregator->aggregate(Row::create(int_entry('int', 20))); - $aggregator->aggregate(Row::create(int_entry('int', 30))); - $aggregator->aggregate(Row::create(int_entry('int', 25))); + $aggregator->aggregate(row(int_entry('int', 10))); + $aggregator->aggregate(row(int_entry('int', 20))); + $aggregator->aggregate(row(int_entry('int', 30))); + $aggregator->aggregate(row(int_entry('int', 25))); self::assertSame( 21.25, @@ -59,10 +60,10 @@ public function test_aggregation_average_with_integer_result() : void { $aggregator = average(ref('int')); - $aggregator->aggregate(Row::create(int_entry('int', 10))); - $aggregator->aggregate(Row::create(int_entry('int', 20))); - $aggregator->aggregate(Row::create(int_entry('int', 30))); - $aggregator->aggregate(Row::create(int_entry('int', 40))); + $aggregator->aggregate(row(int_entry('int', 10))); + $aggregator->aggregate(row(int_entry('int', 20))); + $aggregator->aggregate(row(int_entry('int', 30))); + $aggregator->aggregate(row(int_entry('int', 40))); self::assertSame( 25, @@ -82,13 +83,7 @@ public function test_aggregation_average_with_zero_result() : void public function test_window_function_average_on_partitioned_rows() : void { - $rows = new Rows( - $row1 = Row::create(int_entry('id', 1), int_entry('value', 1)), - Row::create(int_entry('id', 2), int_entry('value', 100)), - Row::create(int_entry('id', 3), int_entry('value', 25)), - Row::create(int_entry('id', 4), int_entry('value', 64)), - Row::create(int_entry('id', 5), int_entry('value', 23)), - ); + $rows = rows($row1 = row(int_entry('id', 1), int_entry('value', 1)), row(int_entry('id', 2), int_entry('value', 100)), row(int_entry('id', 3), int_entry('value', 25)), row(int_entry('id', 4), int_entry('value', 64)), row(int_entry('id', 5), int_entry('value', 23))); $avg = average(ref('value'))->over(window()->orderBy(ref('value'))); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/BinaryComparisonsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/BinaryComparisonsTest.php index 07ca779f1..8bbb5acc9 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/BinaryComparisonsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/BinaryComparisonsTest.php @@ -13,7 +13,7 @@ final class BinaryComparisonsTest extends FlowTestCase { public function test_equals() : void { - $row = Row::create(int_entry('a', 100), int_entry('b', 100), int_entry('c', 10), datetime_entry('d', '2023-01-01 00:00:00 UTC'), datetime_entry('e', '2023-01-01 00:00:00 UTC')); + $row = \Flow\ETL\DSL\row(int_entry('a', 100), int_entry('b', 100), int_entry('c', 10), datetime_entry('d', '2023-01-01 00:00:00 UTC'), datetime_entry('e', '2023-01-01 00:00:00 UTC')); self::assertTrue( (new Equals(ref('a'), ref('b')))->eval($row) @@ -28,14 +28,7 @@ public function test_equals() : void public function test_greater_than() : void { - $row = Row::create( - int_entry('a', 100), - int_entry('b', 100), - int_entry('c', 10), - datetime_entry('d', '2023-01-01 00:00:00 UTC'), - datetime_entry('e', '2023-01-02 00:00:00 UTC'), - int_entry('f', null), - ); + $row = \Flow\ETL\DSL\row(int_entry('a', 100), int_entry('b', 100), int_entry('c', 10), datetime_entry('d', '2023-01-01 00:00:00 UTC'), datetime_entry('e', '2023-01-02 00:00:00 UTC'), int_entry('f', null)); self::assertTrue((new GreaterThan(ref('a'), ref('c')))->eval($row)); self::assertFalse((new GreaterThan(ref('a'), ref('f')))->eval($row)); @@ -71,10 +64,7 @@ public function test_is_in() : void public function test_is_numeric() : void { - $row = Row::create( - int_entry('a', 100), - int_entry('b', null), - ); + $row = \Flow\ETL\DSL\row(int_entry('a', 100), int_entry('b', null)); self::assertTrue((new IsNumeric(ref('a')))->eval($row)); self::assertFalse((new IsNumeric(ref('b')))->eval($row)); self::assertFalse((new IsNotNumeric(ref('a')))->eval($row)); @@ -85,10 +75,7 @@ public function test_is_numeric() : void public function test_is_type() : void { - $row = Row::create( - int_entry('a', 100), - int_entry('b', null), - ); + $row = \Flow\ETL\DSL\row(int_entry('a', 100), int_entry('b', null)); self::assertTrue((new IsType(ref('a'), 'integer', 'string'))->eval($row)); self::assertFalse((new IsType(ref('a'), type_string()))->eval($row)); @@ -98,17 +85,14 @@ public function test_is_type_with_non_existing_type_class() : void { $this->expectExceptionMessage('Unknown type \'aaa\''); - $row = Row::create( - int_entry('a', 100), - int_entry('b', null), - ); + $row = \Flow\ETL\DSL\row(int_entry('a', 100), int_entry('b', null)); self::assertFalse((new IsType(ref('a'), 'aaa'))->eval($row)); } public function test_less_than() : void { - $row = Row::create(int_entry('a', 100), int_entry('b', 100), int_entry('c', 10), int_entry('d', null)); + $row = \Flow\ETL\DSL\row(int_entry('a', 100), int_entry('b', 100), int_entry('c', 10), int_entry('d', null)); self::assertFalse((new LessThan(ref('a'), ref('c')))->eval($row)); self::assertFalse((new LessThan(ref('a'), ref('d')))->eval($row)); @@ -124,7 +108,7 @@ public function test_less_than() : void public function test_not_equals() : void { - $row = Row::create(int_entry('a', 100), int_entry('b', 100), int_entry('c', 10)); + $row = \Flow\ETL\DSL\row(int_entry('a', 100), int_entry('b', 100), int_entry('c', 10)); self::assertFalse( (new NotEquals(ref('a'), ref('b')))->eval($row) @@ -136,7 +120,7 @@ public function test_not_equals() : void public function test_not_same() : void { - $row = Row::create(int_entry('a', 100), int_entry('b', 100), int_entry('c', 10)); + $row = \Flow\ETL\DSL\row(int_entry('a', 100), int_entry('b', 100), int_entry('c', 10)); self::assertTrue( (new NotSame(ref('a'), ref('c')))->eval($row) @@ -148,10 +132,7 @@ public function test_not_same() : void public function test_null() : void { - $row = Row::create( - int_entry('a', 100), - int_entry('b', null), - ); + $row = \Flow\ETL\DSL\row(int_entry('a', 100), int_entry('b', null)); self::assertFalse((new IsNull(ref('a')))->eval($row)); self::assertTrue((new IsNull(ref('b')))->eval($row)); @@ -163,7 +144,7 @@ public function test_null() : void public function test_same() : void { - $row = Row::create(int_entry('a', 100), int_entry('b', 100), int_entry('c', 10), datetime_entry('d', '2023-01-01 00:00:00 UTC'), datetime_entry('e', '2023-01-01 00:00:00 UTC')); + $row = \Flow\ETL\DSL\row(int_entry('a', 100), int_entry('b', 100), int_entry('c', 10), datetime_entry('d', '2023-01-01 00:00:00 UTC'), datetime_entry('e', '2023-01-01 00:00:00 UTC')); self::assertTrue( (new Same(ref('a'), ref('b')))->eval($row) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CapitalizeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CapitalizeTest.php index ffb3f47a6..8055c506a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CapitalizeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CapitalizeTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{ref, str_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class CapitalizeTest extends FlowTestCase @@ -14,7 +14,7 @@ public function test_capitalize_valid_string() : void { self::assertSame( 'This Is A Value', - ref('string')->capitalize()->eval(Row::create(str_entry('string', 'this is a value'))) + ref('string')->capitalize()->eval(row(str_entry('string', 'this is a value'))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CastTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CastTest.php index 691c51766..59f3a8328 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CastTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CastTest.php @@ -4,9 +4,9 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{cast, ref}; use Flow\ETL\PHP\Value\Uuid; -use Flow\ETL\Row; use Flow\ETL\Row\Factory\NativeEntryFactory; use Flow\ETL\Tests\FlowTestCase; use PHPUnit\Framework\Attributes\DataProvider; @@ -52,8 +52,8 @@ public static function cast_provider() : array #[DataProvider('cast_provider')] public function test_cast(mixed $from, string $to, mixed $expected) : void { - $resultRefCast = ref('value')->cast($to)->eval(Row::create((new NativeEntryFactory())->create('value', $from))); - $resultCastRef = cast(ref('value'), $to)->eval(Row::create((new NativeEntryFactory())->create('value', $from))); + $resultRefCast = ref('value')->cast($to)->eval(row((new NativeEntryFactory())->create('value', $from))); + $resultCastRef = cast(ref('value'), $to)->eval(row((new NativeEntryFactory())->create('value', $from))); if (\is_object($expected) || \is_object($from)) { self::assertEquals($expected, $resultRefCast); @@ -67,14 +67,14 @@ public function test_cast(mixed $from, string $to, mixed $expected) : void public function test_casting_integer_to_xml() : void { self::assertNull( - ref('value')->cast('xml')->eval(Row::create((new NativeEntryFactory())->create('value', 1))) + ref('value')->cast('xml')->eval(row((new NativeEntryFactory())->create('value', 1))) ); } public function test_casting_non_xml_string_to_xml() : void { self::assertNull( - ref('value')->cast('xml')->eval(Row::create((new NativeEntryFactory())->create('value', 'foo'))) + ref('value')->cast('xml')->eval(row((new NativeEntryFactory())->create('value', 'foo'))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CollectTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CollectTest.php index 376bc04ca..f9bfd3d3a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CollectTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CollectTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{collect, ref, str_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class CollectTest extends FlowTestCase @@ -14,10 +14,10 @@ public function test_aggregation_collect_entry_values() : void { $aggregator = collect(ref('data')); - $aggregator->aggregate(Row::create(str_entry('data', 'a'))); - $aggregator->aggregate(Row::create(str_entry('data', 'b'))); - $aggregator->aggregate(Row::create(str_entry('data', 'b'))); - $aggregator->aggregate(Row::create(str_entry('data', 'c'))); + $aggregator->aggregate(row(str_entry('data', 'a'))); + $aggregator->aggregate(row(str_entry('data', 'b'))); + $aggregator->aggregate(row(str_entry('data', 'b'))); + $aggregator->aggregate(row(str_entry('data', 'c'))); self::assertSame( [ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CollectUniqueTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CollectUniqueTest.php index 995a2211b..031cca29e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CollectUniqueTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CollectUniqueTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{collect_unique, ref, str_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class CollectUniqueTest extends FlowTestCase @@ -14,10 +14,10 @@ public function test_aggregation_collect_unique_values() : void { $aggregator = collect_unique(ref('data')); - $aggregator->aggregate(Row::create(str_entry('data', 'a'))); - $aggregator->aggregate(Row::create(str_entry('data', 'b'))); - $aggregator->aggregate(Row::create(str_entry('data', 'b'))); - $aggregator->aggregate(Row::create(str_entry('data', 'c'))); + $aggregator->aggregate(row(str_entry('data', 'a'))); + $aggregator->aggregate(row(str_entry('data', 'b'))); + $aggregator->aggregate(row(str_entry('data', 'b'))); + $aggregator->aggregate(row(str_entry('data', 'c'))); self::assertSame( [ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CombineTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CombineTest.php index 6cd57d9e1..65da55c1b 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CombineTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CombineTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{combine, lit}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class CombineTest extends FlowTestCase @@ -14,7 +14,7 @@ public function test_array_combine() : void { self::assertSame( ['a' => 1, 'b' => 2, 'c' => 3], - combine(lit(['a', 'b', 'c']), lit([1, 2, 3]))->eval(Row::create()), + combine(lit(['a', 'b', 'c']), lit([1, 2, 3]))->eval(row()), ); } @@ -22,14 +22,14 @@ public function test_array_combine_when_arrays_are_empty() : void { self::assertSame( [], - combine(lit([]), lit([]))->eval(Row::create()), + combine(lit([]), lit([]))->eval(row()), ); } public function test_array_combine_when_keys_are_not_array() : void { self::assertNull( - combine(lit('a'), lit([1, 2, 3]))->eval(Row::create()), + combine(lit('a'), lit([1, 2, 3]))->eval(row()), ); } @@ -37,14 +37,14 @@ public function test_array_combine_when_keys_are_not_unique() : void { self::assertSame( ['a' => 4, 'b' => 2, 'c' => 3], - combine(lit(['a', 'b', 'c', 'a']), lit([1, 2, 3, 4]))->eval(Row::create()), + combine(lit(['a', 'b', 'c', 'a']), lit([1, 2, 3, 4]))->eval(row()), ); } public function test_array_combine_when_one_of_arrays_is_empty() : void { self::assertNull( - combine(lit(['a', 'b', 'c']), lit([]))->eval(Row::create()), + combine(lit(['a', 'b', 'c']), lit([]))->eval(row()), ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ConcatTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ConcatTest.php index 8f89fd2a2..57d4c56d7 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ConcatTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ConcatTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{concat, json_entry, lit, ref}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ConcatTest extends FlowTestCase @@ -14,7 +14,7 @@ public function test_concat_arrays() : void { self::assertSame( '["a"]["b","c"]', - concat(ref('array_1'), ref('array_2'))->eval(Row::create(json_entry('array_1', ['a']), json_entry('array_2', ['b', 'c']))), + concat(ref('array_1'), ref('array_2'))->eval(row(json_entry('array_1', ['a']), json_entry('array_2', ['b', 'c']))), ); } @@ -22,7 +22,7 @@ public function test_concat_different_types_of_values() : void { self::assertSame( '1abc["a","b"]', - concat(lit(1), lit('a'), lit('b'), lit('c'), lit(['a', 'b']))->eval(Row::create()), + concat(lit(1), lit('a'), lit('b'), lit('c'), lit(['a', 'b']))->eval(row()), ); } @@ -30,7 +30,7 @@ public function test_concat_string_values() : void { self::assertSame( 'abc', - concat(lit('a'), lit('b'), lit('c'))->eval(Row::create()), + concat(lit('a'), lit('b'), lit('c'))->eval(row()), ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CountTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CountTest.php index 08807ef89..c1d55fdad 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CountTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/CountTest.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Tests\Unit\Function; use function Flow\ETL\DSL\{count, float_entry, int_entry, ref, str_entry, window}; -use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; +use function Flow\ETL\DSL\{row, rows}; +use Flow\ETL\{Tests\FlowTestCase}; final class CountTest extends FlowTestCase { @@ -13,11 +14,11 @@ public function test_aggregation_count_from_numeric_values() : void { $aggregator = count(ref('int')); - $aggregator->aggregate(Row::create(str_entry('int', '10'))); - $aggregator->aggregate(Row::create(str_entry('int', '20'))); - $aggregator->aggregate(Row::create(str_entry('int', '55'))); - $aggregator->aggregate(Row::create(str_entry('int', '25'))); - $aggregator->aggregate(Row::create(str_entry('not_int', null))); + $aggregator->aggregate(row(str_entry('int', '10'))); + $aggregator->aggregate(row(str_entry('int', '20'))); + $aggregator->aggregate(row(str_entry('int', '55'))); + $aggregator->aggregate(row(str_entry('int', '25'))); + $aggregator->aggregate(row(str_entry('not_int', null))); self::assertSame( 4, @@ -29,10 +30,10 @@ public function test_aggregation_count_with_float_result() : void { $aggregator = count(ref('int')); - $aggregator->aggregate(Row::create(float_entry('int', 10.25))); - $aggregator->aggregate(Row::create(int_entry('int', 20))); - $aggregator->aggregate(Row::create(int_entry('int', 305))); - $aggregator->aggregate(Row::create(int_entry('int', 25))); + $aggregator->aggregate(row(float_entry('int', 10.25))); + $aggregator->aggregate(row(int_entry('int', 20))); + $aggregator->aggregate(row(int_entry('int', 305))); + $aggregator->aggregate(row(int_entry('int', 25))); self::assertSame( 4, @@ -44,11 +45,11 @@ public function test_aggregation_when_row_does_not_have_entry() : void { $aggregator = count(ref('int')); - $aggregator->aggregate(Row::create(int_entry('int', 10))); - $aggregator->aggregate(Row::create(int_entry('int', 20))); - $aggregator->aggregate(Row::create(int_entry('int', 30))); - $aggregator->aggregate(Row::create(int_entry('int', null))); - $aggregator->aggregate(Row::create(str_entry('test', null))); + $aggregator->aggregate(row(int_entry('int', 10))); + $aggregator->aggregate(row(int_entry('int', 20))); + $aggregator->aggregate(row(int_entry('int', 30))); + $aggregator->aggregate(row(int_entry('int', null))); + $aggregator->aggregate(row(str_entry('test', null))); self::assertSame( 4, @@ -58,13 +59,7 @@ public function test_aggregation_when_row_does_not_have_entry() : void public function test_window_function_count_on_partitioned_rows() : void { - $rows = new Rows( - $row1 = Row::create(int_entry('id', 1), int_entry('value', 1)), - $row2 = Row::create(int_entry('id', 2), int_entry('value', 1)), - Row::create(int_entry('id', 3), int_entry('value', 1)), - Row::create(int_entry('id', 4), int_entry('value', 1)), - Row::create(int_entry('id', 1), int_entry('value', 1)), - ); + $rows = rows($row1 = row(int_entry('id', 1), int_entry('value', 1)), $row2 = row(int_entry('id', 2), int_entry('value', 1)), row(int_entry('id', 3), int_entry('value', 1)), row(int_entry('id', 4), int_entry('value', 1)), row(int_entry('id', 1), int_entry('value', 1))); $count = count(ref('id'))->over(window()->orderBy(ref('id')->desc())); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DOMElementAttributeValueTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DOMElementAttributeValueTest.php index 5746d6a62..6881b54e3 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DOMElementAttributeValueTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DOMElementAttributeValueTest.php @@ -4,8 +4,7 @@ namespace Flow\ETL\Tests\Unit\Function; -use function Flow\ETL\DSL\ref; -use Flow\ETL\Row; +use function Flow\ETL\DSL\{ref, row}; use Flow\ETL\Row\Factory\NativeEntryFactory; use Flow\ETL\Tests\FlowTestCase; @@ -19,7 +18,7 @@ public function test_extracting_attribute_from_dom_element_entry() : void self::assertEquals( 'buz', ref('value')->domElementAttributeValue('baz')->eval( - Row::create((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild)) + row((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild)) ) ); } @@ -31,7 +30,7 @@ public function test_extracting_non_existing_attribute_from_dom_element_entry() self::assertNull( ref('value')->domElementAttributeValue('bar')->eval( - Row::create((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild)) + row((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild)) ) ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DOMElementAttributesCountTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DOMElementAttributesCountTest.php index f022ce972..bcf2351b6 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DOMElementAttributesCountTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DOMElementAttributesCountTest.php @@ -4,8 +4,7 @@ namespace Flow\ETL\Tests\Unit\Function; -use function Flow\ETL\DSL\ref; -use Flow\ETL\Row; +use function Flow\ETL\DSL\{ref, row}; use Flow\ETL\Row\Factory\NativeEntryFactory; use Flow\ETL\Tests\FlowTestCase; @@ -19,7 +18,7 @@ public function test_attributes_count_on_element_with_multiple_attributes() : vo self::assertEquals( 3, ref('value')->domElementAttributesCount()->eval( - Row::create((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild)) + row((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild)) ) ); } @@ -32,7 +31,7 @@ public function test_attributes_count_on_element_with_one_attribute() : void self::assertEquals( 1, ref('value')->domElementAttributesCount()->eval( - Row::create((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild)) + row((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild)) ) ); } @@ -45,7 +44,7 @@ public function test_attributes_count_on_element_with_zero_attributes() : void self::assertEquals( 0, ref('value')->domElementAttributesCount()->eval( - Row::create((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild)) + row((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild)) ) ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DOMElementValueTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DOMElementValueTest.php index e103375e9..c536bced3 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DOMElementValueTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DOMElementValueTest.php @@ -4,8 +4,7 @@ namespace Flow\ETL\Tests\Unit\Function; -use function Flow\ETL\DSL\ref; -use Flow\ETL\Row; +use function Flow\ETL\DSL\{ref, row}; use Flow\ETL\Row\Factory\NativeEntryFactory; use Flow\ETL\Tests\FlowTestCase; @@ -18,7 +17,7 @@ public function test_getting_element_value_with_children() : void self::assertEquals( 'baz', - ref('value')->domElementValue()->eval(Row::create((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild))) + ref('value')->domElementValue()->eval(row((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild))) ); } @@ -29,7 +28,7 @@ public function test_getting_simple_element_value() : void self::assertEquals( 'bar', - ref('value')->domElementValue()->eval(Row::create((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild))) + ref('value')->domElementValue()->eval(row((new NativeEntryFactory())->create('value', $xml->documentElement->firstChild))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DateTimeFormatTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DateTimeFormatTest.php index e733f264a..cf6ae1a67 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DateTimeFormatTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DateTimeFormatTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{date_time_format, datetime_entry, now, ref, str_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class DateTimeFormatTest extends FlowTestCase @@ -14,7 +14,7 @@ public function test_date_time_format() : void { self::assertEquals( '2020-01-01 00:00:00', - date_time_format(ref('date_time'), 'Y-m-d H:i:s')->eval(Row::create(datetime_entry('date_time', new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC'))))) + date_time_format(ref('date_time'), 'Y-m-d H:i:s')->eval(row(datetime_entry('date_time', new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC'))))) ); } @@ -22,14 +22,14 @@ public function test_formatting_now() : void { self::assertInstanceOf( \DateTimeImmutable::class, - now()->eval(Row::create(datetime_entry('date_time', new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC'))))) + now()->eval(row(datetime_entry('date_time', new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC'))))) ); } public function test_invalid_date_time_format() : void { self::assertNull( - date_time_format(ref('date_time'), 'Y-m-d H:i:s')->eval(Row::create(str_entry('date_time', '2020-01-01 00:00:00'))) + date_time_format(ref('date_time'), 'Y-m-d H:i:s')->eval(row(str_entry('date_time', '2020-01-01 00:00:00'))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DenseRankTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DenseRankTest.php index 2008a0665..1877fa1d5 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DenseRankTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/DenseRankTest.php @@ -5,19 +5,14 @@ namespace Flow\ETL\Tests\Unit\Function; use function Flow\ETL\DSL\{dense_rank, int_entry, ref, window}; -use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; +use function Flow\ETL\DSL\{row, rows}; +use Flow\ETL\{Tests\FlowTestCase}; final class DenseRankTest extends FlowTestCase { public function test_rank_function_on_collection_of_rows_sorted_by_id_descending() : void { - $rows = new Rows( - $row1 = Row::create(int_entry('id', 1), int_entry('value', 1), int_entry('salary', 6000)), - $row2 = Row::create(int_entry('id', 2), int_entry('value', 1), int_entry('salary', 6000)), - $row3 = Row::create(int_entry('id', 3), int_entry('value', 1), int_entry('salary', 6000)), - $row4 = Row::create(int_entry('id', 4), int_entry('value', 1), int_entry('salary', 2000)), - $row5 = Row::create(int_entry('id', 5), int_entry('value', 1), int_entry('salary', 4000)), - ); + $rows = rows($row1 = row(int_entry('id', 1), int_entry('value', 1), int_entry('salary', 6000)), $row2 = row(int_entry('id', 2), int_entry('value', 1), int_entry('salary', 6000)), $row3 = row(int_entry('id', 3), int_entry('value', 1), int_entry('salary', 6000)), $row4 = row(int_entry('id', 4), int_entry('value', 1), int_entry('salary', 2000)), $row5 = row(int_entry('id', 5), int_entry('value', 1), int_entry('salary', 4000))); $denseRank = dense_rank()->over(window()->orderBy(ref('salary')->desc())); @@ -32,13 +27,7 @@ public function test_rank_function_without_more_than_one_order_by_entries() : vo { $this->expectExceptionMessage('Dens Rank window function supports only one order by column'); - $rows = new Rows( - $row1 = Row::create(int_entry('id', 1), int_entry('value', 1), int_entry('salary', 6000)), - Row::create(int_entry('id', 2), int_entry('value', 1), int_entry('salary', 6000)), - Row::create(int_entry('id', 3), int_entry('value', 1), int_entry('salary', 6000)), - Row::create(int_entry('id', 4), int_entry('value', 1), int_entry('salary', 2000)), - Row::create(int_entry('id', 5), int_entry('value', 1), int_entry('salary', 4000)), - ); + $rows = rows($row1 = row(int_entry('id', 1), int_entry('value', 1), int_entry('salary', 6000)), row(int_entry('id', 2), int_entry('value', 1), int_entry('salary', 6000)), row(int_entry('id', 3), int_entry('value', 1), int_entry('salary', 6000)), row(int_entry('id', 4), int_entry('value', 1), int_entry('salary', 2000)), row(int_entry('id', 5), int_entry('value', 1), int_entry('salary', 4000))); $densRank = dense_rank()->over(window()->orderBy(ref('salary'), ref('id'))); @@ -48,13 +37,7 @@ public function test_rank_function_without_more_than_one_order_by_entries() : vo public function test_rank_function_without_order_by() : void { $this->expectExceptionMessage('Window function "dens_rank()" requires an OVER clause.'); - $rows = new Rows( - $row1 = Row::create(int_entry('id', 1), int_entry('value', 1), int_entry('salary', 6000)), - Row::create(int_entry('id', 2), int_entry('value', 1), int_entry('salary', 6000)), - Row::create(int_entry('id', 3), int_entry('value', 1), int_entry('salary', 6000)), - Row::create(int_entry('id', 4), int_entry('value', 1), int_entry('salary', 2000)), - Row::create(int_entry('id', 5), int_entry('value', 1), int_entry('salary', 4000)), - ); + $rows = rows($row1 = row(int_entry('id', 1), int_entry('value', 1), int_entry('salary', 6000)), row(int_entry('id', 2), int_entry('value', 1), int_entry('salary', 6000)), row(int_entry('id', 3), int_entry('value', 1), int_entry('salary', 6000)), row(int_entry('id', 4), int_entry('value', 1), int_entry('salary', 2000)), row(int_entry('id', 5), int_entry('value', 1), int_entry('salary', 4000))); dense_rank()->apply($row1, $rows); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ExistsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ExistsTest.php index e178c73b2..8d94a1b2c 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ExistsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ExistsTest.php @@ -4,9 +4,9 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, ref, str_entry}; use Flow\ETL\Function\Exists; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ExistsTest extends FlowTestCase @@ -14,28 +14,28 @@ final class ExistsTest extends FlowTestCase public function test_if_reference_exists() : void { self::assertTrue( - ref('value')->exists()->eval(Row::create(str_entry('value', 'test'))) + ref('value')->exists()->eval(row(str_entry('value', 'test'))) ); } public function test_that_lit_function_exists() : void { self::assertTrue( - (new Exists(lit('val')))->eval(Row::create()) + (new Exists(lit('val')))->eval(row()) ); } public function test_that_null_reference_to_null_entry_exists() : void { self::assertTrue( - ref('value')->exists()->eval(Row::create(str_entry('value', null))) + ref('value')->exists()->eval(row(str_entry('value', null))) ); } public function test_that_reference_does_not_exists() : void { self::assertFalse( - ref('value')->exists()->eval(Row::create()) + ref('value')->exists()->eval(row()) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/FirstTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/FirstTest.php index 2295b8abc..176ea0a05 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/FirstTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/FirstTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{first, int_entry, ref, str_entry, string_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class FirstTest extends FlowTestCase @@ -14,11 +14,11 @@ public function test_aggregation_firs_value() : void { $aggregator = first(ref('int')); - $aggregator->aggregate(Row::create(int_entry('not_int', null))); - $aggregator->aggregate(Row::create(str_entry('int', '10'))); - $aggregator->aggregate(Row::create(str_entry('int', '20'))); - $aggregator->aggregate(Row::create(str_entry('int', '55'))); - $aggregator->aggregate(Row::create(str_entry('int', '25'))); + $aggregator->aggregate(row(int_entry('not_int', null))); + $aggregator->aggregate(row(str_entry('int', '10'))); + $aggregator->aggregate(row(str_entry('int', '20'))); + $aggregator->aggregate(row(str_entry('int', '55'))); + $aggregator->aggregate(row(str_entry('int', '25'))); self::assertSame( '10', diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/HashTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/HashTest.php index db34fb86f..67540fc90 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/HashTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/HashTest.php @@ -4,9 +4,9 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{concat, datetime_entry, hash, json_entry, lit, ref, str_entry}; use Flow\ETL\Hash\NativePHPHash; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class HashTest extends FlowTestCase @@ -15,7 +15,7 @@ public function test_hashing_array_value() : void { self::assertSame( '4450cf82dc53848e2bbe9798b70b0a6a', - ref('value')->hash()->eval(Row::create(json_entry('value', ['test']))), + ref('value')->hash()->eval(row(json_entry('value', ['test']))), ); } @@ -23,7 +23,7 @@ public function test_hashing_concat() : void { self::assertSame( NativePHPHash::xxh128('test_test'), - hash(concat(ref('value'), lit('_'), ref('value')), new NativePHPHash('xxh128'))->eval(Row::create(str_entry('value', 'test'))) + hash(concat(ref('value'), lit('_'), ref('value')), new NativePHPHash('xxh128'))->eval(row(str_entry('value', 'test'))) ); } @@ -31,14 +31,14 @@ public function test_hashing_datetime() : void { self::assertSame( '5347d10de38eb5570c044eb710a5120a', - ref('value')->hash()->eval(Row::create(datetime_entry('value', new \DateTimeImmutable('2021-01-01')))), + ref('value')->hash()->eval(row(datetime_entry('value', new \DateTimeImmutable('2021-01-01')))), ); } public function test_hashing_null_value() : void { self::assertNull( - ref('value')->hash()->eval(Row::create(str_entry('value', null))), + ref('value')->hash()->eval(row(str_entry('value', null))), ); } @@ -46,7 +46,7 @@ public function test_hashing_string_value() : void { self::assertSame( '6c78e0e3bd51d358d01e758642b85fb8', - ref('value')->hash()->eval(Row::create(str_entry('value', 'test'))), + ref('value')->hash()->eval(row(str_entry('value', 'test'))), ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/JsonDecodeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/JsonDecodeTest.php index 5aed3d67a..c6bf9253a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/JsonDecodeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/JsonDecodeTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{int_entry, ref, str_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class JsonDecodeTest extends FlowTestCase @@ -14,21 +14,21 @@ public function test_json_decode_expression() : void { self::assertSame( ['value' => 1], - ref('value')->jsonDecode()->eval(Row::create(str_entry('value', '{"value": 1}'))), + ref('value')->jsonDecode()->eval(row(str_entry('value', '{"value": 1}'))), ); } public function test_json_decode_expression_with_invalid_json() : void { self::assertNull( - ref('value')->jsonDecode()->eval(Row::create(str_entry('value', '{"value": 1'))), + ref('value')->jsonDecode()->eval(row(str_entry('value', '{"value": 1'))), ); } public function test_json_decode_on_non_json_value() : void { self::assertNull( - ref('value')->jsonDecode()->eval(Row::create(int_entry('value', 125))), + ref('value')->jsonDecode()->eval(row(int_entry('value', 125))), ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/JsonEncodeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/JsonEncodeTest.php index 4b4ea0392..7d6019eda 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/JsonEncodeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/JsonEncodeTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{datetime_entry, int_entry, json_entry, ref, str_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class JsonEncodeTest extends FlowTestCase @@ -14,7 +14,7 @@ public function test_json_encode_on_datetime() : void { self::assertSame( '{"date":"2021-01-01 00:00:00.000000","timezone_type":3,"timezone":"UTC"}', - ref('value')->jsonEncode()->eval(Row::create(datetime_entry('value', new \DateTimeImmutable('2021-01-01')))), + ref('value')->jsonEncode()->eval(row(datetime_entry('value', new \DateTimeImmutable('2021-01-01')))), ); } @@ -22,7 +22,7 @@ public function test_json_encode_on_integer() : void { self::assertSame( '125', - ref('value')->jsonEncode()->eval(Row::create(int_entry('value', 125))), + ref('value')->jsonEncode()->eval(row(int_entry('value', 125))), ); } @@ -30,7 +30,7 @@ public function test_json_encode_on_string() : void { self::assertSame( '"test"', - ref('value')->jsonEncode()->eval(Row::create(str_entry('value', 'test'))), + ref('value')->jsonEncode()->eval(row(str_entry('value', 'test'))), ); } @@ -38,7 +38,7 @@ public function test_json_encode_on_valid_associative_array() : void { self::assertSame( '{"value":1}', - ref('value')->jsonEncode()->eval(Row::create(json_entry('value', ['value' => 1]))), + ref('value')->jsonEncode()->eval(row(json_entry('value', ['value' => 1]))), ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/LastTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/LastTest.php index a7e19a4d5..2cb289c26 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/LastTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/LastTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{last, ref, str_entry, string_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class LastTest extends FlowTestCase @@ -14,11 +14,11 @@ public function test_aggregation_last_value() : void { $aggregator = last(ref('int')); - $aggregator->aggregate(Row::create(str_entry('int', '10'))); - $aggregator->aggregate(Row::create(str_entry('int', '20'))); - $aggregator->aggregate(Row::create(str_entry('int', '55'))); - $aggregator->aggregate(Row::create(str_entry('int', '25'))); - $aggregator->aggregate(Row::create(str_entry('not_int', null))); + $aggregator->aggregate(row(str_entry('int', '10'))); + $aggregator->aggregate(row(str_entry('int', '20'))); + $aggregator->aggregate(row(str_entry('int', '55'))); + $aggregator->aggregate(row(str_entry('int', '25'))); + $aggregator->aggregate(row(str_entry('not_int', null))); self::assertSame( '25', diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/MaxTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/MaxTest.php index 005b2f1a9..b515705fa 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/MaxTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/MaxTest.php @@ -4,6 +4,7 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\max; use function Flow\ETL\DSL\{datetime_entry, float_entry, int_entry, ref, row, str_entry}; use Flow\ETL\Tests\FlowTestCase; @@ -11,7 +12,7 @@ final class MaxTest extends FlowTestCase { public function test_aggregation_max_from_numeric_values() : void { - $aggregator = \Flow\ETL\DSL\max(ref('int')); + $aggregator = max(ref('int')); $aggregator->aggregate(row(str_entry('int', '10'))); $aggregator->aggregate(row(str_entry('int', '20'))); @@ -27,7 +28,7 @@ public function test_aggregation_max_from_numeric_values() : void public function test_aggregation_max_including_null_value() : void { - $aggregator = \Flow\ETL\DSL\max(ref('int')); + $aggregator = max(ref('int')); $aggregator->aggregate(row(int_entry('int', 10))); $aggregator->aggregate(row(int_entry('int', 20))); @@ -42,7 +43,7 @@ public function test_aggregation_max_including_null_value() : void public function test_aggregation_max_with_datetime_values() : void { - $aggregator = \Flow\ETL\DSL\max(ref('datetime')); + $aggregator = max(ref('datetime')); $aggregator->aggregate(row(datetime_entry('datetime', '2021-01-01 00:00:00'))); $aggregator->aggregate(row(datetime_entry('datetime', '2021-01-02 00:00:00'))); @@ -57,7 +58,7 @@ public function test_aggregation_max_with_datetime_values() : void public function test_aggregation_max_with_float_result() : void { - $aggregator = \Flow\ETL\DSL\max(ref('int')); + $aggregator = max(ref('int')); $aggregator->aggregate(row(int_entry('int', 10))); $aggregator->aggregate(row(int_entry('int', 20))); @@ -72,7 +73,7 @@ public function test_aggregation_max_with_float_result() : void public function test_aggregation_max_with_integer_result() : void { - $aggregator = \Flow\ETL\DSL\max(ref('int')); + $aggregator = max(ref('int')); $aggregator->aggregate(row(int_entry('int', 10))); $aggregator->aggregate(row(int_entry('int', 20))); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/NotTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/NotTest.php index b7dea4add..8d87e3c18 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/NotTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/NotTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{int_entry, json_entry, lit, not, ref}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class NotTest extends FlowTestCase @@ -13,21 +13,21 @@ final class NotTest extends FlowTestCase public function test_not_expression_on_array_true_value() : void { self::assertFalse( - not(lit([1, 2, 3]))->eval(Row::create()) + not(lit([1, 2, 3]))->eval(row()) ); } public function test_not_expression_on_boolean_true_value() : void { self::assertFalse( - not(lit(true))->eval(Row::create()) + not(lit(true))->eval(row()) ); } public function test_not_expression_on_is_in_expression() : void { self::assertTrue( - not(ref('value')->isIn(ref('array')))->eval(Row::create(json_entry('array', [1, 2, 3]), int_entry('value', 10))) + not(ref('value')->isIn(ref('array')))->eval(row(json_entry('array', [1, 2, 3]), int_entry('value', 10))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/NumberFormatTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/NumberFormatTest.php index 96fc71c11..2cfde497d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/NumberFormatTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/NumberFormatTest.php @@ -5,8 +5,8 @@ namespace Flow\ETL\Tests\Unit\Function; use function Flow\ETL\DSL\{float_entry, int_entry, lit, ref, str_entry}; +use function Flow\ETL\DSL\{number_format, row}; use Flow\ETL\Function\NumberFormat; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class NumberFormatTest extends FlowTestCase @@ -23,19 +23,14 @@ public function test_number_format() : void self::assertSame( '1,234.57', $expression->eval( - Row::create( - float_entry('value', 1234.5678), - int_entry('decimals', 2), - str_entry('decimal_separator', '.'), - str_entry('thousands_separator', ',') - ) + row(float_entry('value', 1234.5678), int_entry('decimals', 2), str_entry('decimal_separator', '.'), str_entry('thousands_separator', ',')) ) ); } public function test_number_format_dsl() : void { - $expression = \Flow\ETL\DSL\number_format( + $expression = number_format( ref('value'), lit(2), lit('.'), @@ -45,9 +40,7 @@ public function test_number_format_dsl() : void self::assertSame( '1,234.57', $expression->eval( - Row::create( - float_entry('value', 1234.5678), - ) + row(float_entry('value', 1234.5678)) ) ); } @@ -63,12 +56,7 @@ public function test_number_format_on_decimals_that_are_not_integer() : void self::assertNull( $expression->eval( - Row::create( - float_entry('value', 1234.5678), - float_entry('decimals', 2.5), - str_entry('decimal_separator', '.'), - str_entry('thousands_separator', ',') - ) + row(float_entry('value', 1234.5678), float_entry('decimals', 2.5), str_entry('decimal_separator', '.'), str_entry('thousands_separator', ',')) ) ); } @@ -84,12 +72,7 @@ public function test_number_format_on_non_int_entry() : void self::assertNull( $expression->eval( - Row::create( - str_entry('value', 'test'), - int_entry('decimals', 2), - str_entry('decimal_separator', '.'), - str_entry('thousands_separator', ',') - ) + row(str_entry('value', 'test'), int_entry('decimals', 2), str_entry('decimal_separator', '.'), str_entry('thousands_separator', ',')) ) ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/PowerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/PowerTest.php index 14a677ada..828226be2 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/PowerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/PowerTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{int_entry, lit, ref, str_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class PowerTest extends FlowTestCase @@ -13,10 +13,10 @@ final class PowerTest extends FlowTestCase public function test_power_non_numeric_values() : void { self::assertNull( - ref('int')->power(lit('non numeric'))->eval(Row::create(int_entry('int', 10))) + ref('int')->power(lit('non numeric'))->eval(row(int_entry('int', 10))) ); self::assertNull( - ref('str')->power(lit(2))->eval(Row::create(str_entry('str', 'abc'))) + ref('str')->power(lit(2))->eval(row(str_entry('str', 'abc'))) ); } @@ -24,7 +24,7 @@ public function test_power_two_numeric_values() : void { self::assertSame( 100, - ref('int')->power(lit(2))->eval(Row::create(int_entry('int', 10))) + ref('int')->power(lit(2))->eval(row(int_entry('int', 10))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/PregReplaceTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/PregReplaceTest.php index be360e5f3..bfce66734 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/PregReplaceTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/PregReplaceTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, regex_replace}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class PregReplaceTest extends FlowTestCase @@ -18,7 +18,7 @@ public function test_preg_replace_expression_on_invalid_pattern() : void lit('foo is awesome') ); - self::assertNull($pregReplace->eval(Row::create())); + self::assertNull($pregReplace->eval(row())); } public function test_preg_replace_expression_on_invalid_replacement() : void @@ -29,7 +29,7 @@ public function test_preg_replace_expression_on_invalid_replacement() : void lit('foo is awesome') ); - self::assertNull($pregReplace->eval(Row::create())); + self::assertNull($pregReplace->eval(row())); } public function test_preg_replace_expression_on_invalid_subject() : void @@ -40,7 +40,7 @@ public function test_preg_replace_expression_on_invalid_subject() : void lit(3) ); - self::assertNull($pregReplace->eval(Row::create())); + self::assertNull($pregReplace->eval(row())); } public function test_preg_replace_expression_on_valid_strings() : void @@ -53,7 +53,7 @@ public function test_preg_replace_expression_on_valid_strings() : void self::assertSame( 'bar is awesome', - $pregReplace->eval(Row::create()) + $pregReplace->eval(row()) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RankTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RankTest.php index 49533f88e..1114ff313 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RankTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RankTest.php @@ -5,19 +5,14 @@ namespace Flow\ETL\Tests\Unit\Function; use function Flow\ETL\DSL\{int_entry, rank, ref, window}; -use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; +use function Flow\ETL\DSL\{row, rows}; +use Flow\ETL\{Tests\FlowTestCase}; final class RankTest extends FlowTestCase { public function test_rank_function_on_collection_of_rows_sorted_by_id_descending() : void { - $rows = new Rows( - $row1 = Row::create(int_entry('id', 1), int_entry('value', 1), int_entry('salary', 6000)), - $row2 = Row::create(int_entry('id', 2), int_entry('value', 1), int_entry('salary', 6000)), - $row3 = Row::create(int_entry('id', 3), int_entry('value', 1), int_entry('salary', 6000)), - $row4 = Row::create(int_entry('id', 4), int_entry('value', 1), int_entry('salary', 2000)), - $row5 = Row::create(int_entry('id', 5), int_entry('value', 1), int_entry('salary', 4000)), - ); + $rows = rows($row1 = row(int_entry('id', 1), int_entry('value', 1), int_entry('salary', 6000)), $row2 = row(int_entry('id', 2), int_entry('value', 1), int_entry('salary', 6000)), $row3 = row(int_entry('id', 3), int_entry('value', 1), int_entry('salary', 6000)), $row4 = row(int_entry('id', 4), int_entry('value', 1), int_entry('salary', 2000)), $row5 = row(int_entry('id', 5), int_entry('value', 1), int_entry('salary', 4000))); $rank = rank()->over(window()->orderBy(ref('salary')->desc())); @@ -32,13 +27,7 @@ public function test_rank_function_without_more_than_one_order_by_entries() : vo { $this->expectExceptionMessage('Rank window function supports only one order by column'); - $rows = new Rows( - $row1 = Row::create(int_entry('id', 1), int_entry('value', 1), int_entry('salary', 6000)), - Row::create(int_entry('id', 2), int_entry('value', 1), int_entry('salary', 6000)), - Row::create(int_entry('id', 3), int_entry('value', 1), int_entry('salary', 6000)), - Row::create(int_entry('id', 4), int_entry('value', 1), int_entry('salary', 2000)), - Row::create(int_entry('id', 5), int_entry('value', 1), int_entry('salary', 4000)), - ); + $rows = rows($row1 = row(int_entry('id', 1), int_entry('value', 1), int_entry('salary', 6000)), row(int_entry('id', 2), int_entry('value', 1), int_entry('salary', 6000)), row(int_entry('id', 3), int_entry('value', 1), int_entry('salary', 6000)), row(int_entry('id', 4), int_entry('value', 1), int_entry('salary', 2000)), row(int_entry('id', 5), int_entry('value', 1), int_entry('salary', 4000))); $rank = rank()->over(window()->partitionBy(ref('value'))->orderBy(ref('salary'), ref('id'))); @@ -48,13 +37,7 @@ public function test_rank_function_without_more_than_one_order_by_entries() : vo public function test_rank_function_without_order_by() : void { $this->expectExceptionMessage('Window function "rank()" requires an OVER clause.'); - $rows = new Rows( - $row1 = Row::create(int_entry('id', 1), int_entry('value', 1), int_entry('salary', 6000)), - Row::create(int_entry('id', 2), int_entry('value', 1), int_entry('salary', 6000)), - Row::create(int_entry('id', 3), int_entry('value', 1), int_entry('salary', 6000)), - Row::create(int_entry('id', 4), int_entry('value', 1), int_entry('salary', 2000)), - Row::create(int_entry('id', 5), int_entry('value', 1), int_entry('salary', 4000)), - ); + $rows = rows($row1 = row(int_entry('id', 1), int_entry('value', 1), int_entry('salary', 6000)), row(int_entry('id', 2), int_entry('value', 1), int_entry('salary', 6000)), row(int_entry('id', 3), int_entry('value', 1), int_entry('salary', 6000)), row(int_entry('id', 4), int_entry('value', 1), int_entry('salary', 2000)), row(int_entry('id', 5), int_entry('value', 1), int_entry('salary', 4000))); $rank = rank(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexAllTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexAllTest.php index e524741b7..b04c026f4 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexAllTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexAllTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, regex_all}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class RegexAllTest extends FlowTestCase @@ -17,7 +17,7 @@ public function test_regex_all_expression_on_invalid_subject() : void lit(2) ); - self::assertNull($pregMatch->eval(Row::create())); + self::assertNull($pregMatch->eval(row())); } public function test_regex_all_expression_on_no_match() : void @@ -27,7 +27,7 @@ public function test_regex_all_expression_on_no_match() : void lit('apples and oranges') ); - self::assertNull($pregMatch->eval(Row::create())); + self::assertNull($pregMatch->eval(row())); } public function test_regex_all_expression_on_valid_strings() : void @@ -39,7 +39,7 @@ public function test_regex_all_expression_on_valid_strings() : void self::assertEquals( [['124.23 EUR', '12 USD', '45 PLN'], ['124.23', '12', '45'], ['EUR', 'USD', 'PLN']], - $pregMatch->eval(Row::create()) + $pregMatch->eval(row()) ); } @@ -50,6 +50,6 @@ public function test_regex_expression_on_invalid_pattern() : void lit('12 apples and 45 oranges') ); - self::assertNull($pregMatch->eval(Row::create())); + self::assertNull($pregMatch->eval(row())); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexMatchAllTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexMatchAllTest.php index d0f33c359..2712897d9 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexMatchAllTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexMatchAllTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, regex_match_all}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class RegexMatchAllTest extends FlowTestCase @@ -19,7 +19,7 @@ public function test_regex_match_all_expression_on_invalid_flags() : void ); self::assertNull( - $pregMatchAll->eval(Row::create()) + $pregMatchAll->eval(row()) ); } @@ -31,7 +31,7 @@ public function test_regex_match_all_expression_on_invalid_pattern() : void ); self::assertNull( - $pregMatchAll->eval(Row::create()) + $pregMatchAll->eval(row()) ); } @@ -43,7 +43,7 @@ public function test_regex_match_all_expression_on_invalid_subject() : void ); self::assertNull( - $pregMatchAll->eval(Row::create()) + $pregMatchAll->eval(row()) ); } @@ -55,7 +55,7 @@ public function test_regex_match_all_expression_on_valid_strings() : void ); self::assertTrue( - $pregMatchAll->eval(Row::create()) + $pregMatchAll->eval(row()) ); } @@ -68,7 +68,7 @@ public function test_regex_match_all_expression_on_valid_strings_with_flags() : ); self::assertTrue( - $pregMatchAll->eval(Row::create()) + $pregMatchAll->eval(row()) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexMatchTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexMatchTest.php index 336899576..1bec2519c 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexMatchTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexMatchTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, regex_match}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class RegexMatchTest extends FlowTestCase @@ -17,7 +17,7 @@ public function test_regex_match_expression_on_invalid_pattern() : void lit('12 apples and 45 oranges') ); - self::assertNull($pregMatch->eval(Row::create())); + self::assertNull($pregMatch->eval(row())); } public function test_regex_match_expression_on_invalid_subject() : void @@ -27,7 +27,7 @@ public function test_regex_match_expression_on_invalid_subject() : void lit(2) ); - self::assertNull($pregMatch->eval(Row::create())); + self::assertNull($pregMatch->eval(row())); } public function test_regex_match_expression_on_no_match() : void @@ -37,7 +37,7 @@ public function test_regex_match_expression_on_no_match() : void lit('apples and oranges') ); - self::assertFalse($pregMatch->eval(Row::create())); + self::assertFalse($pregMatch->eval(row())); } public function test_regex_match_expression_on_valid_strings() : void @@ -47,6 +47,6 @@ public function test_regex_match_expression_on_valid_strings() : void lit('12 apples and 45 oranges') ); - self::assertTrue($pregMatch->eval(Row::create())); + self::assertTrue($pregMatch->eval(row())); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexTest.php index 9581fef99..45ac11e4f 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RegexTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, regex, regex_match_all}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class RegexTest extends FlowTestCase @@ -17,7 +17,7 @@ public function test_regex_expression_on_invalid_pattern() : void lit('12 apples and 45 oranges') ); - self::assertNull($pregMatch->eval(Row::create())); + self::assertNull($pregMatch->eval(row())); } public function test_regex_expression_on_invalid_subject() : void @@ -27,7 +27,7 @@ public function test_regex_expression_on_invalid_subject() : void lit(2) ); - self::assertNull($pregMatch->eval(Row::create())); + self::assertNull($pregMatch->eval(row())); } public function test_regex_expression_on_no_match() : void @@ -37,7 +37,7 @@ public function test_regex_expression_on_no_match() : void lit('apples and oranges') ); - self::assertNull($pregMatch->eval(Row::create())); + self::assertNull($pregMatch->eval(row())); } public function test_regex_expression_on_valid_strings() : void @@ -48,7 +48,7 @@ public function test_regex_expression_on_valid_strings() : void ); self::assertTrue( - $pregMatch->eval(Row::create()) + $pregMatch->eval(row()) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RowNumberTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RowNumberTest.php index 3e2a2b7ca..b02c9bcb7 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RowNumberTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/RowNumberTest.php @@ -5,19 +5,14 @@ namespace Flow\ETL\Tests\Unit\Function; use function Flow\ETL\DSL\{int_entry, ref, row_number, window}; -use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; +use function Flow\ETL\DSL\{row, rows}; +use Flow\ETL\{Tests\FlowTestCase}; final class RowNumberTest extends FlowTestCase { public function test_row_number_function_on_collection_of_rows_sorted_by_id_descending() : void { - $rows = new Rows( - $row1 = Row::create(int_entry('id', 1), int_entry('value', 1)), - Row::create(int_entry('id', 2), int_entry('value', 1)), - Row::create(int_entry('id', 3), int_entry('value', 1)), - Row::create(int_entry('id', 4), int_entry('value', 1)), - Row::create(int_entry('id', 5), int_entry('value', 1)), - ); + $rows = rows($row1 = row(int_entry('id', 1), int_entry('value', 1)), row(int_entry('id', 2), int_entry('value', 1)), row(int_entry('id', 3), int_entry('value', 1)), row(int_entry('id', 4), int_entry('value', 1)), row(int_entry('id', 5), int_entry('value', 1))); $rowNumber = row_number()->over(window()->partitionBy(ref('value'))->orderBy(ref('id')->desc())); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SanitizeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SanitizeTest.php index 85f5aa706..479edb65e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SanitizeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SanitizeTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{int_entry, lit, ref, str_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class SanitizeTest extends FlowTestCase @@ -13,7 +13,7 @@ final class SanitizeTest extends FlowTestCase public function test_sanitize_on_non_string_value() : void { self::assertNull( - ref('value')->sanitize()->eval(Row::create(int_entry('value', 1000))), + ref('value')->sanitize()->eval(row(int_entry('value', 1000))), ); } @@ -21,7 +21,7 @@ public function test_sanitize_on_valid_string() : void { self::assertSame( '****', - ref('value')->sanitize()->eval(Row::create(str_entry('value', 'test'))), + ref('value')->sanitize()->eval(row(str_entry('value', 'test'))), ); } @@ -29,7 +29,7 @@ public function test_sanitize_on_valid_string_with_left_characters() : void { self::assertSame( 'te**', - ref('value')->sanitize(skipCharacters: lit(2))->eval(Row::create(str_entry('value', 'test'))), + ref('value')->sanitize(skipCharacters: lit(2))->eval(row(str_entry('value', 'test'))), ); } @@ -37,7 +37,7 @@ public function test_sanitize_on_valid_string_with_left_characters_longer_than_s { self::assertSame( '****', - ref('value')->sanitize(skipCharacters: lit(5))->eval(Row::create(str_entry('value', 'test'))), + ref('value')->sanitize(skipCharacters: lit(5))->eval(row(str_entry('value', 'test'))), ); } @@ -45,7 +45,7 @@ public function test_sanitize_on_valid_string_with_placeholder() : void { self::assertSame( '----', - ref('value')->sanitize(lit('-'))->eval(Row::create(str_entry('value', 'test'))), + ref('value')->sanitize(lit('-'))->eval(row(str_entry('value', 'test'))), ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SizeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SizeTest.php index 970181570..6fe9e078f 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SizeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SizeTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, size}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class SizeTest extends FlowTestCase @@ -14,14 +14,14 @@ public function test_size_expression_on_array_value() : void { self::assertSame( 3, - size(lit(['foo', 'bar', 'baz']))->eval(Row::create()) + size(lit(['foo', 'bar', 'baz']))->eval(row()) ); } public function test_size_expression_on_integer_value() : void { self::assertNull( - size(lit(1))->eval(Row::create()) + size(lit(1))->eval(row()) ); } @@ -29,7 +29,7 @@ public function test_size_expression_on_string_value() : void { self::assertSame( 3, - size(lit('foo'))->eval(Row::create()) + size(lit('foo'))->eval(row()) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SplitTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SplitTest.php index 67bc83c70..53ac38cf0 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SplitTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SplitTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, split}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class SplitTest extends FlowTestCase @@ -13,7 +13,7 @@ final class SplitTest extends FlowTestCase public function test_split_not_string() : void { self::assertNull( - split(lit(123), ',')->eval(Row::create()) + split(lit(123), ',')->eval(row()) ); } @@ -21,7 +21,7 @@ public function test_split_string() : void { self::assertSame( ['foo', 'bar', 'baz'], - split(lit('foo,bar,baz'), ',')->eval(Row::create()) + split(lit('foo,bar,baz'), ',')->eval(row()) ); } @@ -29,7 +29,7 @@ public function test_split_string_with_limit() : void { self::assertSame( ['foo', 'bar,baz'], - split(lit('foo,bar,baz'), ',', 2)->eval(Row::create()) + split(lit('foo,bar,baz'), ',', 2)->eval(row()) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SprintfTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SprintfTest.php index d92b6ab66..db2be78a6 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SprintfTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SprintfTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, sprintf}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class SprintfTest extends FlowTestCase @@ -18,7 +18,7 @@ public function test_sprintf_expression_on_invalid_format() : void lit(25) ); - self::assertNull($sprintf->eval(Row::create())); + self::assertNull($sprintf->eval(row())); } public function test_sprintf_expression_on_valid_format_and_args() : void @@ -31,7 +31,7 @@ public function test_sprintf_expression_on_valid_format_and_args() : void self::assertSame( 'Hello, John! Your age is 25.', - $sprintf->eval(Row::create()) + $sprintf->eval(row()) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/StrPadTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/StrPadTest.php index 104321826..421ca7b15 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/StrPadTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/StrPadTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{ref, str_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class StrPadTest extends FlowTestCase @@ -14,7 +14,7 @@ public function test_str_pad_on_valid_string() : void { self::assertSame( '----N', - ref('value')->strPad(5, '-', \STR_PAD_LEFT)->eval(Row::create(str_entry('value', 'N'))), + ref('value')->strPad(5, '-', \STR_PAD_LEFT)->eval(row(str_entry('value', 'N'))), ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/StrReplaceTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/StrReplaceTest.php index 99e4b706f..50a9eeab9 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/StrReplaceTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/StrReplaceTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{ref, str_entry}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class StrReplaceTest extends FlowTestCase @@ -14,7 +14,7 @@ public function test_str_replace_on_valid_string() : void { self::assertSame( '1', - ref('value')->strReplace('test', '1')->eval(Row::create(str_entry('value', 'test'))), + ref('value')->strReplace('test', '1')->eval(row(str_entry('value', 'test'))), ); } @@ -22,7 +22,7 @@ public function test_str_replace_on_valid_string_with_array_of_replacements() : { self::assertSame( 'test was successful', - ref('value')->strReplace(['is', 'broken'], ['was', 'successful'])->eval(Row::create(str_entry('value', 'test is broken'))), + ref('value')->strReplace(['is', 'broken'], ['was', 'successful'])->eval(row(str_entry('value', 'test is broken'))), ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SumTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SumTest.php index 0b3097784..4a68d4dba 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SumTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/SumTest.php @@ -5,7 +5,8 @@ namespace Flow\ETL\Tests\Unit\Function; use function Flow\ETL\DSL\{float_entry, int_entry, ref, str_entry, sum, window}; -use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; +use function Flow\ETL\DSL\{row, rows}; +use Flow\ETL\{Tests\FlowTestCase}; final class SumTest extends FlowTestCase { @@ -13,11 +14,11 @@ public function test_aggregation_sum_from_numeric_values() : void { $aggregator = sum(ref('int')); - $aggregator->aggregate(Row::create(str_entry('int', '10'))); - $aggregator->aggregate(Row::create(str_entry('int', '20'))); - $aggregator->aggregate(Row::create(str_entry('int', '55'))); - $aggregator->aggregate(Row::create(str_entry('int', '25'))); - $aggregator->aggregate(Row::create(str_entry('not_int', null))); + $aggregator->aggregate(row(str_entry('int', '10'))); + $aggregator->aggregate(row(str_entry('int', '20'))); + $aggregator->aggregate(row(str_entry('int', '55'))); + $aggregator->aggregate(row(str_entry('int', '25'))); + $aggregator->aggregate(row(str_entry('not_int', null))); self::assertSame( 110, @@ -29,10 +30,10 @@ public function test_aggregation_sum_including_null_value() : void { $aggregator = sum(ref('int')); - $aggregator->aggregate(Row::create(int_entry('int', 10))); - $aggregator->aggregate(Row::create(int_entry('int', 20))); - $aggregator->aggregate(Row::create(int_entry('int', 30))); - $aggregator->aggregate(Row::create(str_entry('int', null))); + $aggregator->aggregate(row(int_entry('int', 10))); + $aggregator->aggregate(row(int_entry('int', 20))); + $aggregator->aggregate(row(int_entry('int', 30))); + $aggregator->aggregate(row(str_entry('int', null))); self::assertSame( 60, @@ -44,10 +45,10 @@ public function test_aggregation_sum_with_float_result() : void { $aggregator = sum(ref('int')); - $aggregator->aggregate(Row::create(float_entry('int', 10.25))); - $aggregator->aggregate(Row::create(int_entry('int', 20))); - $aggregator->aggregate(Row::create(int_entry('int', 305))); - $aggregator->aggregate(Row::create(int_entry('int', 25))); + $aggregator->aggregate(row(float_entry('int', 10.25))); + $aggregator->aggregate(row(int_entry('int', 20))); + $aggregator->aggregate(row(int_entry('int', 305))); + $aggregator->aggregate(row(int_entry('int', 25))); self::assertSame( 360.25, @@ -57,13 +58,7 @@ public function test_aggregation_sum_with_float_result() : void public function test_window_function_sum_on_partitioned_rows() : void { - $rows = new Rows( - $row1 = Row::create(int_entry('id', 1), int_entry('value', 1)), - Row::create(int_entry('id', 2), int_entry('value', 1)), - Row::create(int_entry('id', 3), int_entry('value', 1)), - Row::create(int_entry('id', 4), int_entry('value', 1)), - Row::create(int_entry('id', 5), int_entry('value', 1)), - ); + $rows = rows($row1 = row(int_entry('id', 1), int_entry('value', 1)), row(int_entry('id', 2), int_entry('value', 1)), row(int_entry('id', 3), int_entry('value', 1)), row(int_entry('id', 4), int_entry('value', 1)), row(int_entry('id', 5), int_entry('value', 1))); $sum = sum(ref('id'))->over(window()->orderBy(ref('id')->desc())); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToDateTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToDateTest.php index 37679c604..c18072325 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToDateTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToDateTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{datetime_entry, int_entry, ref, str_entry, to_date}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ToDateTest extends FlowTestCase @@ -14,7 +14,7 @@ public function test_date_time_to_date() : void { self::assertEquals( new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC')), - to_date(ref('date_time'))->eval(Row::create(datetime_entry('date_time', new \DateTimeImmutable('2020-01-01 12:43:23', new \DateTimeZone('UTC'))))) + to_date(ref('date_time'))->eval(row(datetime_entry('date_time', new \DateTimeImmutable('2020-01-01 12:43:23', new \DateTimeZone('UTC'))))) ); } @@ -22,7 +22,7 @@ public function test_int_to_date_time() : void { self::assertEquals( new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC')), - to_date(ref('int'))->eval(Row::create(int_entry('int', (int) (new \DateTimeImmutable('2020-01-01 10:11:11', new \DateTimeZone('UTC')))->format('U')))) + to_date(ref('int'))->eval(row(int_entry('int', (int) (new \DateTimeImmutable('2020-01-01 10:11:11', new \DateTimeZone('UTC')))->format('U')))) ); } @@ -30,7 +30,7 @@ public function test_string_to_date_time() : void { self::assertEquals( new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC')), - to_date(ref('string'), 'Y-m-d H:i:s')->eval(Row::create(str_entry('string', '2020-01-01 10:08:00'))) + to_date(ref('string'), 'Y-m-d H:i:s')->eval(row(str_entry('string', '2020-01-01 10:08:00'))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToDateTimeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToDateTimeTest.php index 2c1389915..b8192de8c 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToDateTimeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToDateTimeTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{datetime_entry, int_entry, ref, str_entry, to_date_time}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ToDateTimeTest extends FlowTestCase @@ -14,7 +14,7 @@ public function test_date_time_to_date_time() : void { self::assertEquals( new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC')), - to_date_time(ref('date_time'))->eval(Row::create(datetime_entry('date_time', new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC'))))) + to_date_time(ref('date_time'))->eval(row(datetime_entry('date_time', new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC'))))) ); } @@ -22,7 +22,7 @@ public function test_int_to_date_time() : void { self::assertEquals( new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC')), - to_date_time(ref('int'))->eval(Row::create(int_entry('int', (int) (new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC')))->format('U')))) + to_date_time(ref('int'))->eval(row(int_entry('int', (int) (new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC')))->format('U')))) ); } @@ -30,7 +30,7 @@ public function test_string_to_date_time() : void { self::assertEquals( new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC')), - to_date_time(ref('string'), 'Y-m-d H:i:s')->eval(Row::create(str_entry('string', '2020-01-01 00:00:00'))) + to_date_time(ref('string'), 'Y-m-d H:i:s')->eval(row(str_entry('string', '2020-01-01 00:00:00'))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToLowerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToLowerTest.php index 635d68d7a..5968b01d6 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToLowerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToLowerTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, lower}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ToLowerTest extends FlowTestCase @@ -14,7 +14,7 @@ public function test_string_to_lower() : void { self::assertSame( 'lower', - lower(lit('LOWER'))->eval(Row::create()) + lower(lit('LOWER'))->eval(row()) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToTimeZoneTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToTimeZoneTest.php index 0d962512a..2ab9c51cc 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToTimeZoneTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToTimeZoneTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, ref, str_entry, to_timezone}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ToTimeZoneTest extends FlowTestCase @@ -17,7 +17,7 @@ public function test_casting_date_time_pst_to_utc_time_zone() : void to_timezone( lit(new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('PST'))), lit(new \DateTimeZone('UTC')) - )->eval(Row::create())->format('Y-m-d H:i:s.u') + )->eval(row())->format('Y-m-d H:i:s.u') ); } @@ -28,7 +28,7 @@ public function test_casting_date_time_pst_to_utc_time_zone_from_entry_ref() : v to_timezone( lit(new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('PST'))), ref('tz') - )->eval(Row::create(str_entry('tz', 'UTC')))->format('Y-m-d H:i:s.u') + )->eval(row(str_entry('tz', 'UTC')))->format('Y-m-d H:i:s.u') ); } @@ -39,7 +39,7 @@ public function test_casting_date_time_pst_to_utc_time_zone_from_string_tz() : v to_timezone( lit(new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('PST'))), lit('UTC') - )->eval(Row::create())->format('Y-m-d H:i:s.u') + )->eval(row())->format('Y-m-d H:i:s.u') ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToUpperTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToUpperTest.php index 0cf1a7a54..a38030543 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToUpperTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ToUpperTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, upper}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ToUpperTest extends FlowTestCase @@ -14,7 +14,7 @@ public function test_string_to_upper() : void { self::assertSame( 'UPPER', - upper(lit('upper'))->eval(Row::create()) + upper(lit('upper'))->eval(row()) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/TrimTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/TrimTest.php index 35a6572cd..9ff86011e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/TrimTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/TrimTest.php @@ -4,9 +4,9 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{ref, str_entry}; use Flow\ETL\Function\Trim\Type; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class TrimTest extends FlowTestCase @@ -15,7 +15,7 @@ public function test_trim_both_valid_string() : void { self::assertSame( 'value', - ref('string')->trim()->eval(Row::create(str_entry('string', ' value'))) + ref('string')->trim()->eval(row(str_entry('string', ' value'))) ); } @@ -23,7 +23,7 @@ public function test_trim_left_valid_string() : void { self::assertSame( 'value ', - ref('string')->trim(Type::LEFT)->eval(Row::create(str_entry('string', ' value '))) + ref('string')->trim(Type::LEFT)->eval(row(str_entry('string', ' value '))) ); } @@ -31,7 +31,7 @@ public function test_trim_right_valid_string() : void { self::assertSame( ' value', - ref('string')->trim(Type::RIGHT)->eval(Row::create(str_entry('string', ' value '))) + ref('string')->trim(Type::RIGHT)->eval(row(str_entry('string', ' value '))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/UlidTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/UlidTest.php index b37f110d9..cd87e43aa 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/UlidTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/UlidTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, ulid}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; use Symfony\Component\Uid\Ulid; @@ -16,12 +16,12 @@ public function test_ulid() : void $expression = ulid(); self::assertTrue( Ulid::isValid( - $expression->eval(Row::create())->toBase32() + $expression->eval(row())->toBase32() ) ); self::assertNotSame( - $expression->eval(Row::create()), - $expression->eval(Row::create()) + $expression->eval(row()), + $expression->eval(row()) ); } @@ -30,15 +30,15 @@ public function test_ulid_is_unique() : void $expression = ulid(); self::assertNotEquals( - $expression->eval(Row::create()), - $expression->eval(Row::create()) + $expression->eval(row()), + $expression->eval(row()) ); } public function test_ulid_with_invalid_value_returns_null() : void { self::assertNull( - ulid(lit(''))->eval(Row::create()) + ulid(lit(''))->eval(row()) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/UuidTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/UuidTest.php index c7e37fa86..3b9e1a088 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/UuidTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/UuidTest.php @@ -4,34 +4,35 @@ namespace Flow\ETL\Tests\Unit\Function; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{lit, uuid_v4, uuid_v7}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; +use Ramsey\Uuid\Uuid; final class UuidTest extends FlowTestCase { protected function setUp() : void { - if (!\class_exists(\Ramsey\Uuid\Uuid::class) && !\class_exists(\Symfony\Component\Uid\Uuid::class)) { + if (!\class_exists(Uuid::class) && !\class_exists(\Symfony\Component\Uid\Uuid::class)) { self::markTestSkipped("Package 'ramsey/uuid' or 'symfony/uid' is required for this test."); } } public function test_uuid4() : void { - if (!\class_exists(\Ramsey\Uuid\Uuid::class)) { + if (!\class_exists(Uuid::class)) { self::markTestSkipped("Package 'ramsey/uuid' is required for this test."); } $expression = uuid_v4(); self::assertTrue( - \Ramsey\Uuid\Uuid::isValid( - $expression->eval(Row::create())->toString() + Uuid::isValid( + $expression->eval(row())->toString() ) ); self::assertNotSame( - $expression->eval(Row::create()), - $expression->eval(Row::create()) + $expression->eval(row()), + $expression->eval(row()) ); } @@ -40,20 +41,20 @@ public function test_uuid4_is_unique() : void $expression = uuid_v4(); self::assertNotEquals( - $expression->eval(Row::create()), - $expression->eval(Row::create()) + $expression->eval(row()), + $expression->eval(row()) ); } public function test_uuid7() : void { - if (!\class_exists(\Ramsey\Uuid\Uuid::class)) { + if (!\class_exists(Uuid::class)) { self::markTestSkipped("Package 'ramsey/uuid' is required for this test."); } self::assertTrue( - \Ramsey\Uuid\Uuid::isValid( - uuid_v7(lit(new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC'))))->eval(Row::create())->toString() + Uuid::isValid( + uuid_v7(lit(new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC'))))->eval(row())->toString() ) ); } @@ -62,15 +63,15 @@ public function test_uuid7_is_unique() : void { $dateTime = lit(new \DateTimeImmutable('2020-01-01 00:00:00', new \DateTimeZone('UTC'))); self::assertNotEquals( - uuid_v7($dateTime)->eval(Row::create()), - uuid_v7($dateTime)->eval(Row::create()) + uuid_v7($dateTime)->eval(row()), + uuid_v7($dateTime)->eval(row()) ); } public function test_uuid7_return_null_for_non_datetime_interface() : void { self::assertNull( - uuid_v7(lit(''))->eval(Row::create()) + uuid_v7(lit(''))->eval(row()) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/XPathTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/XPathTest.php index ce1031079..1912b516d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/XPathTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/XPathTest.php @@ -4,8 +4,7 @@ namespace Flow\ETL\Tests\Unit\Function; -use function Flow\ETL\DSL\ref; -use Flow\ETL\Row; +use function Flow\ETL\DSL\{ref, row}; use Flow\ETL\Row\Factory\NativeEntryFactory; use Flow\ETL\Tests\FlowTestCase; @@ -18,7 +17,7 @@ public function test_xpath_on_simple_xml_with_only_one_node_returned() : void self::assertEquals( [$xml->documentElement->firstChild], - ref('value')->xpath('/root/foo')->eval(Row::create((new NativeEntryFactory())->create('value', $xml))) + ref('value')->xpath('/root/foo')->eval(row((new NativeEntryFactory())->create('value', $xml))) ); } @@ -32,7 +31,7 @@ public function test_xpath_when_there_are_more_than_one_elements_under_given_pat $xml->documentElement->firstChild, $xml->documentElement->lastChild, ], - ref('value')->xpath('/root/foo')->eval(Row::create((new NativeEntryFactory())->create('value', $xml))) + ref('value')->xpath('/root/foo')->eval(row((new NativeEntryFactory())->create('value', $xml))) ); } @@ -42,7 +41,7 @@ public function test_xpath_with_invalid_path_syntax() : void $xml->loadXML('bar'); self::assertNull( - ref('value')->xpath('/root/foo/@')->eval(Row::create((new NativeEntryFactory())->create('value', $xml))) + ref('value')->xpath('/root/foo/@')->eval(row((new NativeEntryFactory())->create('value', $xml))) ); } @@ -52,7 +51,7 @@ public function test_xpath_with_non_existing_path() : void $xml->loadXML('bar'); self::assertNull( - ref('value')->xpath('/root/bar')->eval(Row::create((new NativeEntryFactory())->create('value', $xml))) + ref('value')->xpath('/root/bar')->eval(row((new NativeEntryFactory())->create('value', $xml))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupByTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupByTest.php index 7fb6a60cd..62b4d5eec 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupByTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupByTest.php @@ -4,9 +4,10 @@ namespace Flow\ETL\Tests\Unit; +use function Flow\ETL\DSL\{config, flow_context}; use function Flow\ETL\DSL\{int_entry, null_entry, ref, row, rows, str_entry, sum}; use Flow\ETL\Exception\{InvalidArgumentException, RuntimeException}; -use Flow\ETL\{Config, FlowContext, GroupBy, Tests\FlowTestCase}; +use Flow\ETL\{GroupBy, Tests\FlowTestCase}; final class GroupByTest extends FlowTestCase { @@ -26,7 +27,7 @@ public function test_group_by_missing_entry() : void row(null_entry('type')), row(str_entry('type', 'c')) ), - $groupBy->result(new FlowContext(Config::default())) + $groupBy->result(flow_context(config())) ); } @@ -50,7 +51,7 @@ public function test_group_by_with_aggregation() : void row(int_entry('id_sum', 3), str_entry('type', 'c')), row(int_entry('id_sum', 5), str_entry('type', 'd')), ), - $group->result(new FlowContext(Config::default())) + $group->result(flow_context(config())) ); } @@ -92,7 +93,7 @@ public function test_group_by_with_pivoting() : void row(str_entry('product', 'Carrots'), int_entry('Canada', 2000), int_entry('China', 1200), null_entry('Mexico'), int_entry('USA', 1500)), row(str_entry('product', 'Orange'), null_entry('Canada'), int_entry('China', 4000), null_entry('Mexico'), int_entry('USA', 4000)), ), - $group->result(new FlowContext(Config::default()))->sortBy(ref('product')) + $group->result(flow_context(config()))->sortBy(ref('product')) ); } @@ -114,7 +115,7 @@ public function test_group_by_with_pivoting_with_null_pivot_column() : void row(str_entry('product', 'Apple'), null_entry('USA')), row(str_entry('product', 'Banana'), int_entry('USA', 1000)), ), - $group->result(new FlowContext(Config::default()))->sortBy(ref('product')) + $group->result(flow_context(config()))->sortBy(ref('product')) ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/AllTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/AllTest.php index 18938dcc0..15316baf5 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/AllTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/AllTest.php @@ -4,10 +4,9 @@ namespace Flow\ETL\Tests\Unit\Join\Comparison; -use function Flow\ETL\DSL\int_entry; +use function Flow\ETL\DSL\{int_entry, row}; use Flow\ETL\Join\Comparison; use Flow\ETL\Join\Comparison\All; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class AllTest extends FlowTestCase @@ -27,8 +26,8 @@ public function test_failure() : void self::assertFalse( (new All($comparison1, $comparison2)) ->compare( - Row::create(int_entry('id', 1)), - Row::create(int_entry('id', 2)), + row(int_entry('id', 1)), + row(int_entry('id', 2)), ) ); } @@ -48,8 +47,8 @@ public function test_success() : void self::assertTrue( (new All($comparison1, $comparison2)) ->compare( - Row::create(int_entry('id', 1)), - Row::create(int_entry('id', 2)), + row(int_entry('id', 1)), + row(int_entry('id', 2)), ) ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/AnyTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/AnyTest.php index d1ea6fe8d..9a3ad60d6 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/AnyTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/AnyTest.php @@ -4,10 +4,9 @@ namespace Flow\ETL\Tests\Unit\Join\Comparison; -use function Flow\ETL\DSL\int_entry; +use function Flow\ETL\DSL\{int_entry, row}; use Flow\ETL\Join\Comparison; use Flow\ETL\Join\Comparison\Any; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class AnyTest extends FlowTestCase @@ -27,8 +26,8 @@ public function test_failure() : void self::assertFalse( (new Any($comparison1, $comparison2)) ->compare( - Row::create(int_entry('id', 1)), - Row::create(int_entry('id', 2)), + row(int_entry('id', 1)), + row(int_entry('id', 2)), ) ); } @@ -48,8 +47,8 @@ public function test_success() : void self::assertTrue( (new Any($comparison1, $comparison2)) ->compare( - Row::create(int_entry('id', 1)), - Row::create(int_entry('id', 2)), + row(int_entry('id', 1)), + row(int_entry('id', 2)), ) ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/EqualTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/EqualTest.php index 51679d7ee..9734fdde9 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/EqualTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/EqualTest.php @@ -4,9 +4,8 @@ namespace Flow\ETL\Tests\Unit\Join\Comparison; -use function Flow\ETL\DSL\datetime_entry; +use function Flow\ETL\DSL\{datetime_entry, row}; use Flow\ETL\Join\Comparison\Equal; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class EqualTest extends FlowTestCase @@ -15,8 +14,8 @@ public function test_failure() : void { self::assertFalse( (new Equal('datetime', 'datetime'))->compare( - Row::create(datetime_entry('datetime', new \DateTimeImmutable('2022-10-01 00:00:00'))), - Row::create(datetime_entry('datetime', new \DateTimeImmutable('2022-10-01 01:00:00'))), + row(datetime_entry('datetime', new \DateTimeImmutable('2022-10-01 00:00:00'))), + row(datetime_entry('datetime', new \DateTimeImmutable('2022-10-01 01:00:00'))), ) ); } @@ -25,8 +24,8 @@ public function test_success() : void { self::assertTrue( (new Equal('datetime', 'datetime'))->compare( - Row::create(datetime_entry('datetime', $datetime = new \DateTimeImmutable('2022-10-01 00:00:00'))), - Row::create(datetime_entry('datetime', $datetime)), + row(datetime_entry('datetime', $datetime = new \DateTimeImmutable('2022-10-01 00:00:00'))), + row(datetime_entry('datetime', $datetime)), ) ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/IdenticalTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/IdenticalTest.php index 6ca044aa4..2c76f0409 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/IdenticalTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/Comparison/IdenticalTest.php @@ -4,9 +4,8 @@ namespace Flow\ETL\Tests\Unit\Join\Comparison; -use function Flow\ETL\DSL\int_entry; +use function Flow\ETL\DSL\{int_entry, row}; use Flow\ETL\Join\Comparison\Identical; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class IdenticalTest extends FlowTestCase @@ -15,8 +14,8 @@ public function test_failure() : void { self::assertFalse( (new Identical('id', 'id'))->compare( - Row::create(int_entry('id', 1)), - Row::create(int_entry('id', 2)), + row(int_entry('id', 1)), + row(int_entry('id', 2)), ) ); } @@ -25,8 +24,8 @@ public function test_success() : void { self::assertTrue( (new Identical('id', 'id'))->compare( - Row::create(int_entry('id', 1)), - Row::create(int_entry('id', 1)), + row(int_entry('id', 1)), + row(int_entry('id', 1)), ) ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/ExpressionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/ExpressionTest.php index 59e3a3a83..da6c35920 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/ExpressionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/ExpressionTest.php @@ -4,10 +4,10 @@ namespace Flow\ETL\Tests\Unit\Join; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{col, int_entry}; use Flow\ETL\Join\Comparison\Equal; use Flow\ETL\Join\Expression; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class ExpressionTest extends FlowTestCase @@ -26,8 +26,8 @@ public function test_expression_comparison() : void $expression = Expression::on(new Equal('id', 'id'), '_'); self::assertTrue($expression->meet( - Row::create(int_entry('id', 1)), - Row::create(int_entry('id', 1)), + row(int_entry('id', 1)), + row(int_entry('id', 1)), )); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/CallbackLoaderTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/CallbackLoaderTest.php index e8fd34829..ed5ba2395 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/CallbackLoaderTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/CallbackLoaderTest.php @@ -4,23 +4,21 @@ namespace Flow\ETL\Tests\Unit\Loader; +use function Flow\ETL\DSL\{config, flow_context, row}; use function Flow\ETL\DSL\{int_entry, str_entry, to_callable}; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Rows, Tests\FlowTestCase}; final class CallbackLoaderTest extends FlowTestCase { public function test_callback_loader() : void { - $rows = new Rows( - Row::create(int_entry('number', 1), str_entry('name', 'one')), - Row::create(int_entry('number', 2), str_entry('name', 'two')), - ); + $rows = \Flow\ETL\DSL\rows(row(int_entry('number', 1), str_entry('name', 'one')), row(int_entry('number', 2), str_entry('name', 'two'))); $data = []; to_callable(function (Rows $rows) use (&$data) : void { $data = $rows->toArray(); - })->load($rows, new FlowContext(Config::default())); + })->load($rows, flow_context(config())); self::assertEquals($rows->toArray(), $data); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/MemoryLoaderTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/MemoryLoaderTest.php index a75ab8964..f64d27089 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/MemoryLoaderTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/MemoryLoaderTest.php @@ -4,22 +4,20 @@ namespace Flow\ETL\Tests\Unit\Loader; +use function Flow\ETL\DSL\{config, flow_context, row, rows}; use function Flow\ETL\DSL\{int_entry, str_entry, to_memory}; use Flow\ETL\Memory\ArrayMemory; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class MemoryLoaderTest extends FlowTestCase { public function test_loads_rows_data_into_memory() : void { - $rows = new Rows( - Row::create(int_entry('number', 1), str_entry('name', 'one')), - Row::create(int_entry('number', 2), str_entry('name', 'two')), - ); + $rows = rows(row(int_entry('number', 1), str_entry('name', 'one')), row(int_entry('number', 2), str_entry('name', 'two'))); $memory = new ArrayMemory(); - to_memory($memory)->load($rows, new FlowContext(Config::default())); + to_memory($memory)->load($rows, flow_context(config())); self::assertEquals($rows->toArray(), $memory->dump()); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/SchemaValidationLoaderTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/SchemaValidationLoaderTest.php index e6fd3db8b..f02375589 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/SchemaValidationLoaderTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/SchemaValidationLoaderTest.php @@ -4,11 +4,13 @@ namespace Flow\ETL\Tests\Unit\Loader; +use function Flow\ETL\DSL\{config, row, rows}; +use function Flow\ETL\DSL\{flow_context, integer_schema, schema}; use function Flow\ETL\DSL\{int_entry, str_entry}; use Flow\ETL\Exception\SchemaValidationException; use Flow\ETL\Loader\SchemaValidationLoader; -use Flow\ETL\Row\Schema; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\Row\Schema\StrictValidator; +use Flow\ETL\{Tests\FlowTestCase}; final class SchemaValidationLoaderTest extends FlowTestCase { @@ -29,29 +31,21 @@ public function test_schema_validation_failed() : void ); $loader = new SchemaValidationLoader( - new Schema( - Schema\Definition::integer('id') - ), - new Schema\StrictValidator() + schema(integer_schema('id')), + new StrictValidator() ); - $loader->load(new Rows( - Row::create(str_entry('id', '1')) - ), new FlowContext(Config::default())); + $loader->load(rows(row(str_entry('id', '1'))), flow_context(config())); } public function test_schema_validation_succeed() : void { $loader = new SchemaValidationLoader( - new Schema( - Schema\Definition::integer('id') - ), - new Schema\StrictValidator() + schema(integer_schema('id')), + new StrictValidator() ); - $loader->load(new Rows( - Row::create(int_entry('id', 1)) - ), new FlowContext(Config::default())); + $loader->load(rows(row(int_entry('id', 1))), flow_context(config())); // validate that error wasn't thrown $this->addToAssertionCount(1); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/StreamLoaderTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/StreamLoaderTest.php index 18dd49918..bc43312ff 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/StreamLoaderTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/StreamLoaderTest.php @@ -4,17 +4,19 @@ namespace Flow\ETL\Tests\Unit\Loader; +use function Flow\ETL\DSL\{config, flow_context}; use function Flow\ETL\DSL\{int_entry, ref, row, rows, str_entry, to_output, to_stream}; use Flow\ETL\Exception\RuntimeException; use Flow\ETL\Loader\StreamLoader; -use Flow\ETL\{Config, FlowContext, Tests\FlowTestCase}; +use Flow\ETL\Loader\StreamLoader\Output; +use Flow\ETL\{Tests\FlowTestCase}; use Flow\Filesystem\Stream\Mode; final class StreamLoaderTest extends FlowTestCase { public function test_columns_count_to_php_output_stream() : void { - $loader = to_output(false, StreamLoader\Output::column_count); + $loader = to_output(false, Output::column_count); \ob_start(); @@ -24,7 +26,7 @@ public function test_columns_count_to_php_output_stream() : void row(int_entry('id', 2), str_entry('name', 'id_2')), row(int_entry('id', 3), str_entry('name', 'id_3')) ), - new FlowContext(Config::default()) + flow_context(config()) ); $output = \ob_get_contents(); \ob_end_clean(); @@ -51,7 +53,7 @@ public function test_loading_data_into_invalid_stream() : void row(int_entry('id', 2), str_entry('name', 'id_2')), row(int_entry('id', 3), str_entry('name', 'id_3')) ), - new FlowContext(Config::default()) + flow_context(config()) ); } @@ -67,7 +69,7 @@ public function test_loading_partitioned_rows_into_php_output_stream() : void row(int_entry('id', 2), str_entry('name', 'id_2'), str_entry('group', 'a')), row(int_entry('id', 3), str_entry('name', 'id_3'), str_entry('group', 'a')) )->partitionBy(ref('group'))[0], - new FlowContext(Config::default()) + flow_context(config()) ); $output = \ob_get_contents(); \ob_end_clean(); @@ -91,7 +93,7 @@ public function test_loading_partitioned_rows_into_php_output_stream() : void public function test_loading_rows_and_schema_into_output_stream() : void { - $loader = to_output(false, StreamLoader\Output::rows_and_schema); + $loader = to_output(false, Output::rows_and_schema); \ob_start(); @@ -101,7 +103,7 @@ public function test_loading_rows_and_schema_into_output_stream() : void row(int_entry('id', 2), str_entry('name', 'id_2')), row(int_entry('id', 3), str_entry('name', 'id_3')) ), - new FlowContext(Config::default()) + flow_context(config()) ); $output = \ob_get_contents(); \ob_end_clean(); @@ -138,7 +140,7 @@ public function test_loading_rows_into_php_output_stream() : void row(int_entry('id', 2), str_entry('name', 'id_2')), row(int_entry('id', 3), str_entry('name', 'id_3')) ), - new FlowContext(Config::default()) + flow_context(config()) ); $output = \ob_get_contents(); \ob_end_clean(); @@ -160,7 +162,7 @@ public function test_loading_rows_into_php_output_stream() : void public function test_loading_schema_into_php_output_stream() : void { - $loader = new StreamLoader('php://output', Mode::WRITE, 0, StreamLoader\Output::schema); + $loader = new StreamLoader('php://output', Mode::WRITE, 0, Output::schema); \ob_start(); @@ -170,7 +172,7 @@ public function test_loading_schema_into_php_output_stream() : void row(int_entry('id', 2), str_entry('name', 'id_2')), row(int_entry('id', 3), str_entry('name', 'id_3')) ), - new FlowContext(Config::default()) + flow_context(config()) ); $output = \ob_get_contents(); \ob_end_clean(); @@ -188,7 +190,7 @@ public function test_loading_schema_into_php_output_stream() : void public function test_rows_and_columns_count_to_php_output_stream() : void { - $loader = to_output(false, StreamLoader\Output::rows_and_column_count); + $loader = to_output(false, Output::rows_and_column_count); \ob_start(); @@ -198,7 +200,7 @@ public function test_rows_and_columns_count_to_php_output_stream() : void row(int_entry('id', 2), str_entry('name', 'id_2')), row(int_entry('id', 3), str_entry('name', 'id_3')) ), - new FlowContext(Config::default()) + flow_context(config()) ); $output = \ob_get_contents(); \ob_end_clean(); @@ -214,7 +216,7 @@ public function test_rows_and_columns_count_to_php_output_stream() : void public function test_rows_count_to_php_output_stream() : void { - $loader = to_output(false, StreamLoader\Output::rows_count); + $loader = to_output(false, Output::rows_count); \ob_start(); @@ -224,7 +226,7 @@ public function test_rows_count_to_php_output_stream() : void row(int_entry('id', 2), str_entry('name', 'id_2')), row(int_entry('id', 3), str_entry('name', 'id_3')) ), - new FlowContext(Config::default()) + flow_context(config()) ); $output = \ob_get_contents(); \ob_end_clean(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/TransformerLoaderTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/TransformerLoaderTest.php index 32c81e5a2..de54ba6f1 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/TransformerLoaderTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Loader/TransformerLoaderTest.php @@ -4,8 +4,9 @@ namespace Flow\ETL\Tests\Unit\Loader; -use function Flow\ETL\DSL\to_transformation; -use Flow\ETL\{Config, FlowContext, Loader, Rows, Tests\FlowTestCase, Transformer}; +use function Flow\ETL\DSL\{config, rows}; +use function Flow\ETL\DSL\{flow_context, to_transformation}; +use Flow\ETL\{Loader, Tests\FlowTestCase, Transformer}; final class TransformerLoaderTest extends FlowTestCase { @@ -14,7 +15,7 @@ public function test_transformer_loader() : void $transformerMock = $this->createMock(Transformer::class); $transformerMock->expects(self::once()) ->method('transform') - ->willReturn(new Rows()); + ->willReturn(rows()); $loaderMock = $this->createMock(Loader::class); $loaderMock->expects(self::once()) @@ -25,6 +26,6 @@ public function test_transformer_loader() : void $loaderMock ); - $transformer->load(new Rows(), new FlowContext(Config::default())); + $transformer->load(rows(), flow_context(config())); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/ArrayContentDetectorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/ArrayContentDetectorTest.php index b9b591f11..b32dfae5e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/ArrayContentDetectorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/ArrayContentDetectorTest.php @@ -4,11 +4,8 @@ namespace Flow\ETL\Tests\Unit\PHP\Type; +use function Flow\ETL\DSL\{structure_element, type_integer, type_list, type_map, type_structure}; use function Flow\ETL\DSL\{type_int, type_null, type_string}; -use Flow\ETL\PHP\Type\Logical\List\ListElement; -use Flow\ETL\PHP\Type\Logical\Map\{MapKey, MapValue}; -use Flow\ETL\PHP\Type\Logical\Structure\StructureElement; -use Flow\ETL\PHP\Type\Logical\{ListType, MapType, StructureType}; use Flow\ETL\PHP\Type\Native\ArrayType; use Flow\ETL\PHP\Type\{ArrayContentDetector, Types}; use Flow\ETL\Tests\FlowTestCase; @@ -46,8 +43,8 @@ public static function provide_list_data() : \Generator ], [ type_string(), - new MapType(MapKey::string(), MapValue::string()), - new ListType(ListElement::integer()), + type_map(type_string(), type_string()), + type_list(type_integer()), ], false, false, @@ -58,9 +55,9 @@ public static function provide_list_data() : \Generator type_int(), ], [ - new StructureType([ - new StructureElement('id', type_int()), - new StructureElement('name', type_string()), + type_structure([ + structure_element('id', type_int()), + structure_element('name', type_string()), ]), ], true, @@ -72,12 +69,7 @@ public static function provide_list_data() : \Generator type_string(), ], [ - new MapType( - MapKey::string(), - MapValue::map( - new MapType(MapKey::string(), MapValue::string()), - ) - ), + type_map(type_string(), type_map(type_string(), type_string())), ], false, false, @@ -116,8 +108,8 @@ public static function provide_map_data() : \Generator ], [ type_string(), - new MapType(MapKey::string(), MapValue::string()), - new ListType(ListElement::integer()), + type_map(type_string(), type_string()), + type_list(type_integer()), ], false, false, @@ -128,9 +120,9 @@ public static function provide_map_data() : \Generator type_int(), ], [ - new StructureType([ - new StructureElement('id', type_int()), - new StructureElement('name', type_string()), + type_structure([ + structure_element('id', type_int()), + structure_element('name', type_string()), ]), ], true, @@ -142,12 +134,7 @@ public static function provide_map_data() : \Generator type_string(), ], [ - new MapType( - MapKey::string(), - MapValue::map( - new MapType(MapKey::string(), MapValue::string()), - ) - ), + type_map(type_string(), type_map(type_string(), type_string())), ], false, true, @@ -197,8 +184,8 @@ public static function provide_structure_data() : \Generator ], [ type_string(), - new MapType(MapKey::string(), MapValue::string()), - new ListType(ListElement::integer()), + type_map(type_string(), type_string()), + type_list(type_integer()), ], true, true, @@ -209,9 +196,9 @@ public static function provide_structure_data() : \Generator type_int(), ], [ - new StructureType([ - new StructureElement('id', type_int()), - new StructureElement('name', type_string()), + type_structure([ + structure_element('id', type_int()), + structure_element('name', type_string()), ]), ], false, @@ -223,12 +210,7 @@ public static function provide_structure_data() : \Generator type_string(), ], [ - new MapType( - MapKey::string(), - MapValue::map( - new MapType(MapKey::string(), MapValue::string()), - ) - ), + type_map(type_string(), type_map(type_string(), type_string())), ], false, false, diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Logical/ListTypeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Logical/ListTypeTest.php index 8f56e8b8d..1d23837d3 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Logical/ListTypeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Logical/ListTypeTest.php @@ -4,31 +4,21 @@ namespace Flow\ETL\Tests\Unit\PHP\Type\Logical; -use Flow\ETL\PHP\Type\Logical\List\ListElement; -use Flow\ETL\PHP\Type\Logical\Map\{MapKey, MapValue}; -use Flow\ETL\PHP\Type\Logical\{ListType, MapType}; +use function Flow\ETL\DSL\{type_boolean, type_float, type_integer, type_list, type_map, type_string}; use Flow\ETL\Tests\FlowTestCase; final class ListTypeTest extends FlowTestCase { - public function test_element() : void - { - self::assertEquals( - $element = ListElement::integer(), - (new ListType($element))->element() - ); - } - public function test_equals() : void { self::assertTrue( - (new ListType(ListElement::integer()))->isEqual(new ListType(ListElement::integer())) + (type_list(type_integer()))->isEqual(type_list(type_integer())) ); self::assertFalse( - (new ListType(ListElement::integer()))->isEqual(new MapType(MapKey::string(), MapValue::float())) + (type_list(type_integer()))->isEqual(type_map(type_string(), type_float())) ); self::assertFalse( - (new ListType(ListElement::integer()))->isEqual(new ListType(ListElement::float())) + (type_list(type_integer()))->isEqual(type_list(type_float())) ); } @@ -36,47 +26,37 @@ public function test_to_string() : void { self::assertSame( 'list', - (new ListType(ListElement::boolean()))->toString() + (type_list(type_boolean()))->toString() ); } public function test_valid() : void { self::assertTrue( - (new ListType(ListElement::boolean()))->isValid([true, false]) + (type_list(type_boolean()))->isValid([true, false]) ); self::assertTrue( - (new ListType(ListElement::boolean(), true))->isValid(null) + (type_list(type_boolean(), true))->isValid(null) ); self::assertTrue( - (new ListType(ListElement::string()))->isValid(['one', 'two']) + (type_list(type_string()))->isValid(['one', 'two']) ); self::assertTrue( - (new ListType(ListElement::list(new ListType(ListElement::string()))))->isValid([['one', 'two']]) + (type_list(type_list(type_string())))->isValid([['one', 'two']]) ); self::assertTrue( ( - new ListType( - ListElement::map(new MapType(MapKey::string(), MapValue::list(new ListType(ListElement::integer())))) - ) + type_list(type_map(type_string(), type_list(type_integer()))) )->isValid([['one' => [1, 2], 'two' => [3, 4]], ['one' => [5, 6], 'two' => [7, 8]]]) ); self::assertFalse( - (new ListType(ListElement::string()))->isValid(['one' => 'two']) + (type_list(type_string()))->isValid(['one' => 'two']) ); self::assertFalse( - (new ListType(ListElement::string()))->isValid([1, 2]) + (type_list(type_string()))->isValid([1, 2]) ); self::assertFalse( - (new ListType(ListElement::string()))->isValid(123) - ); - } - - public function test_value() : void - { - self::assertEquals( - $value = MapValue::string(), - (new MapType(MapKey::string(), $value))->value() + (type_list(type_string()))->isValid(123) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Logical/MapTypeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Logical/MapTypeTest.php index f9d705e4f..d6250d5b8 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Logical/MapTypeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Logical/MapTypeTest.php @@ -4,9 +4,7 @@ namespace Flow\ETL\Tests\Unit\PHP\Type\Logical; -use Flow\ETL\PHP\Type\Logical\List\ListElement; -use Flow\ETL\PHP\Type\Logical\Map\{MapKey, MapValue}; -use Flow\ETL\PHP\Type\Logical\{ListType, MapType}; +use function Flow\ETL\DSL\{type_float, type_integer, type_list, type_map, type_string}; use Flow\ETL\Tests\FlowTestCase; final class MapTypeTest extends FlowTestCase @@ -14,21 +12,13 @@ final class MapTypeTest extends FlowTestCase public function test_equals() : void { self::assertTrue( - (new MapType(MapKey::string(), MapValue::float()))->isEqual(new MapType(MapKey::string(), MapValue::float())) + (type_map(type_string(), type_float()))->isEqual(type_map(type_string(), type_float())) ); self::assertFalse( - (new MapType(MapKey::string(), MapValue::float()))->isEqual(new ListType(ListElement::integer())) + (type_map(type_string(), type_float()))->isEqual(type_list(type_integer())) ); self::assertFalse( - (new MapType(MapKey::string(), MapValue::float()))->isEqual(new MapType(MapKey::string(), MapValue::integer())) - ); - } - - public function test_key() : void - { - self::assertEquals( - $key = MapKey::string(), - (new MapType($key, MapValue::float()))->key() + (type_map(type_string(), type_float()))->isEqual(type_map(type_string(), type_integer())) ); } @@ -36,45 +26,33 @@ public function test_to_string() : void { self::assertSame( 'map', - (new MapType(MapKey::string(), MapValue::string()))->toString() + (type_map(type_string(), type_string()))->toString() ); } public function test_valid() : void { self::assertTrue( - (new MapType(MapKey::string(), MapValue::string()))->isValid(['one' => 'two']) + (type_map(type_string(), type_string()))->isValid(['one' => 'two']) ); self::assertTrue( - (new MapType(MapKey::string(), MapValue::string(), true))->isValid(null) + (type_map(type_string(), type_string(), true))->isValid(null) ); self::assertTrue( - (new MapType(MapKey::integer(), MapValue::list(new ListType(ListElement::integer()))))->isValid([[1, 2], [3, 4]]) + (type_map(type_integer(), type_list(type_integer())))->isValid([[1, 2], [3, 4]]) ); self::assertTrue( - ( - new MapType( - MapKey::integer(), - MapValue::map(new MapType(MapKey::string(), MapValue::list(new ListType(ListElement::integer())))) - ) - )->isValid([0 => ['one' => [1, 2]], 1 => ['two' => [3, 4]]]) + (type_map(type_integer(), type_map(type_string(), type_list(type_integer())))) + ->isValid([0 => ['one' => [1, 2]], 1 => ['two' => [3, 4]]]) ); self::assertFalse( - (new MapType(MapKey::integer(), MapValue::string()))->isValid(['one' => 'two']) + (type_map(type_integer(), type_string()))->isValid(['one' => 'two']) ); self::assertFalse( - (new MapType(MapKey::integer(), MapValue::string()))->isValid([1, 2]) + (type_map(type_integer(), type_string()))->isValid([1, 2]) ); self::assertFalse( - (new MapType(MapKey::string(), MapValue::string()))->isValid(123) - ); - } - - public function test_value() : void - { - self::assertEquals( - $value = MapValue::string(), - (new MapType(MapKey::string(), $value))->value() + (type_map(type_string(), type_string()))->isValid(123) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Logical/StructureTypeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Logical/StructureTypeTest.php index d84da0a1f..f6f024643 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Logical/StructureTypeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Logical/StructureTypeTest.php @@ -5,10 +5,8 @@ namespace Flow\ETL\Tests\Unit\PHP\Type\Logical; use function Flow\ETL\DSL\{struct_element, struct_type, type_boolean, type_float, type_int, type_string}; +use function Flow\ETL\DSL\{type_datetime, type_integer, type_list, type_map}; use Flow\ETL\Exception\InvalidArgumentException; -use Flow\ETL\PHP\Type\Logical\List\ListElement; -use Flow\ETL\PHP\Type\Logical\Map\{MapKey, MapValue}; -use Flow\ETL\PHP\Type\Logical\{ListType, MapType}; use Flow\ETL\Tests\FlowTestCase; final class StructureTypeTest extends FlowTestCase @@ -16,7 +14,7 @@ final class StructureTypeTest extends FlowTestCase public function test_elements() : void { self::assertEquals( - $map = [struct_element('map', new MapType(MapKey::string(), MapValue::float()))], + $map = [struct_element('map', type_map(type_string(), type_float()))], (struct_type($map))->elements() ); } @@ -24,12 +22,12 @@ public function test_elements() : void public function test_equals() : void { self::assertTrue( - (struct_type([struct_element('map', new MapType(MapKey::string(), MapValue::float()))])) - ->isEqual(struct_type([struct_element('map', new MapType(MapKey::string(), MapValue::float()))])) + (struct_type([struct_element('map', type_map(type_string(), type_float()))])) + ->isEqual(struct_type([struct_element('map', type_map(type_string(), type_float()))])) ); self::assertFalse( (struct_type([struct_element('string', type_string()), struct_element('bool', type_boolean())])) - ->isEqual(new ListType(ListElement::integer())) + ->isEqual(type_list(type_integer())) ); self::assertFalse( (struct_type([struct_element('string', type_string()), struct_element('bool', type_boolean())])) @@ -67,14 +65,14 @@ public function test_merging_different_left_structure() : void struct_type([ struct_element('string', type_string(true)), struct_element('float', type_float()), - struct_element('map', new MapType(MapKey::string(), MapValue::list(new ListType(ListElement::datetime())), true)), + struct_element('map', type_map(type_string(), type_list(type_list(type_datetime())), true)), ]), struct_type([ struct_element('string', type_string()), struct_element('float', type_float()), ])->merge(struct_type([ struct_element('float', type_float()), - struct_element('map', new MapType(MapKey::string(), MapValue::list(new ListType(ListElement::datetime())))), + struct_element('map', type_map(type_string(), type_list(type_list(type_datetime())))), ])) ); } @@ -85,13 +83,13 @@ public function test_merging_different_right_structure() : void struct_type([ struct_element('string', type_string(true)), struct_element('float', type_float(true)), - struct_element('map', new MapType(MapKey::string(), MapValue::list(new ListType(ListElement::datetime())), true)), + struct_element('map', type_map(type_string(), type_list(type_list(type_datetime())), true)), ]), struct_type([ struct_element('string', type_string()), struct_element('float', type_float()), ])->merge(struct_type([ - struct_element('map', new MapType(MapKey::string(), MapValue::list(new ListType(ListElement::datetime())))), + struct_element('map', type_map(type_string(), type_list(type_list(type_datetime())))), ])) ); } @@ -150,7 +148,7 @@ public function test_to_string() : void $struct = struct_type([ struct_element('string', type_string()), struct_element('float', type_float()), - struct_element('map', new MapType(MapKey::string(), MapValue::list(new ListType(ListElement::datetime())))), + struct_element('map', type_map(type_string(), type_list(type_datetime()))), ]); self::assertSame( @@ -172,10 +170,7 @@ public function test_valid() : void struct_type([ struct_element( 'map', - new MapType( - MapKey::integer(), - MapValue::map(new MapType(MapKey::string(), MapValue::list(new ListType(ListElement::integer())))) - ) + type_map(type_integer(), type_map(type_string(), type_list(type_integer()))) ), struct_element('string', type_string()), struct_element('float', type_float()), diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/ArrayTypeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/ArrayTypeTest.php index 526aee18e..418dfbe11 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/ArrayTypeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/ArrayTypeTest.php @@ -5,8 +5,7 @@ namespace Flow\ETL\Tests\Unit\PHP\Type\Native; use function Flow\ETL\DSL\{type_array, type_float}; -use Flow\ETL\PHP\Type\Logical\Map\{MapKey, MapValue}; -use Flow\ETL\PHP\Type\Logical\MapType; +use function Flow\ETL\DSL\{type_map, type_string}; use Flow\ETL\PHP\Type\Native\ArrayType; use Flow\ETL\Tests\FlowTestCase; @@ -15,13 +14,13 @@ final class ArrayTypeTest extends FlowTestCase public function test_equals() : void { self::assertTrue( - (type_array())->isEqual(new ArrayType) + (type_array())->isEqual(type_array()) ); self::assertTrue( ArrayType::empty()->isEqual(ArrayType::empty()) ); self::assertFalse( - (type_array())->isEqual(new MapType(MapKey::string(), MapValue::float())) + (type_array())->isEqual(type_map(type_string(), type_float())) ); self::assertFalse( (type_array())->isEqual(type_float()) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/CallableTypeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/CallableTypeTest.php index 7d3236a33..b30e7ad53 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/CallableTypeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/CallableTypeTest.php @@ -5,8 +5,7 @@ namespace Flow\ETL\Tests\Unit\PHP\Type\Native; use function Flow\ETL\DSL\{type_callable, type_float}; -use Flow\ETL\PHP\Type\Logical\Map\{MapKey, MapValue}; -use Flow\ETL\PHP\Type\Logical\MapType; +use function Flow\ETL\DSL\{type_map, type_string}; use Flow\ETL\Tests\FlowTestCase; final class CallableTypeTest extends FlowTestCase @@ -17,7 +16,7 @@ public function test_equals() : void type_callable(false)->isEqual(type_callable(false)) ); self::assertFalse( - type_callable(false)->isEqual(new MapType(MapKey::string(), MapValue::float())) + type_callable(false)->isEqual(type_map(type_string(), type_float())) ); self::assertFalse( type_callable(false)->isEqual(type_float()) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/NullTypeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/NullTypeTest.php index 9ed354fb6..9b4ec67a9 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/NullTypeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/NullTypeTest.php @@ -5,8 +5,7 @@ namespace Flow\ETL\Tests\Unit\PHP\Type\Native; use function Flow\ETL\DSL\{type_float, type_null}; -use Flow\ETL\PHP\Type\Logical\Map\{MapKey, MapValue}; -use Flow\ETL\PHP\Type\Logical\MapType; +use function Flow\ETL\DSL\{type_map, type_string}; use Flow\ETL\Tests\FlowTestCase; final class NullTypeTest extends FlowTestCase @@ -17,7 +16,7 @@ public function test_equals() : void type_null()->isEqual(type_null()) ); self::assertFalse( - type_null()->isEqual(new MapType(MapKey::string(), MapValue::float())) + type_null()->isEqual(type_map(type_string(), type_float())) ); self::assertFalse( type_null()->isEqual(type_float()) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/ResourceTypeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/ResourceTypeTest.php index c04f96a60..68dee881a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/ResourceTypeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/PHP/Type/Native/ResourceTypeTest.php @@ -5,8 +5,7 @@ namespace Flow\ETL\Tests\Unit\PHP\Type\Native; use function Flow\ETL\DSL\{type_float, type_resource}; -use Flow\ETL\PHP\Type\Logical\Map\{MapKey, MapValue}; -use Flow\ETL\PHP\Type\Logical\MapType; +use function Flow\ETL\DSL\{type_map, type_string}; use Flow\ETL\Tests\FlowTestCase; final class ResourceTypeTest extends FlowTestCase @@ -17,7 +16,7 @@ public function test_equals() : void (type_resource(false))->isEqual(type_resource(false)) ); self::assertFalse( - (type_resource(false))->isEqual(new MapType(MapKey::string(), MapValue::float())) + (type_resource(false))->isEqual(type_map(type_string(), type_float())) ); self::assertFalse( (type_resource(false))->isEqual(type_float()) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Pipeline/LinkedPipelineTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Pipeline/LinkedPipelineTest.php index aad3550ef..36cf14294 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Pipeline/LinkedPipelineTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Pipeline/LinkedPipelineTest.php @@ -5,32 +5,24 @@ namespace Flow\ETL\Tests\Unit\Pipeline; use function Flow\ETL\DSL\{bool_entry, int_entry, lit}; -use Flow\ETL\Extractor\RowsExtractor; +use function Flow\ETL\DSL\{config, flow_context, from_rows, row, rows}; use Flow\ETL\Pipeline\{LinkedPipeline, SynchronousPipeline}; use Flow\ETL\Transformer\ScalarFunctionTransformer; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class LinkedPipelineTest extends FlowTestCase { public function test_linked_pipelines() : void { $pipeline = new LinkedPipeline( - (new SynchronousPipeline(new RowsExtractor( - new Rows( - Row::create(int_entry('id', 1)), - Row::create(int_entry('id', 2)) - ) - )))->add(new ScalarFunctionTransformer('active', lit(true))), + (new SynchronousPipeline(from_rows(rows(row(int_entry('id', 1)), row(int_entry('id', 2))))))->add(new ScalarFunctionTransformer('active', lit(true))), ); self::assertEquals( [ - new Rows( - Row::create(int_entry('id', 1), bool_entry('active', true)), - Row::create(int_entry('id', 2), bool_entry('active', true)) - ), + rows(row(int_entry('id', 1), bool_entry('active', true)), row(int_entry('id', 2), bool_entry('active', true))), ], - \iterator_to_array($pipeline->process(new FlowContext(Config::default()))) + \iterator_to_array($pipeline->process(flow_context(config()))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/ArrayToRowTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/ArrayToRowTest.php index 65ea2b3f7..407b33f5e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/ArrayToRowTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/ArrayToRowTest.php @@ -4,6 +4,7 @@ namespace Flow\ETL\Tests\Unit\Row; +use function Flow\ETL\DSL\schema; use function Flow\ETL\DSL\{array_to_row, bool_entry, bool_schema, @@ -22,7 +23,6 @@ type_list, type_null, type_string}; -use Flow\ETL\Row\Schema; use Flow\ETL\Tests\FlowTestCase; final class ArrayToRowTest extends FlowTestCase @@ -75,10 +75,7 @@ public function test_building_single_row_from_array_with_schema_and_additional_f { $row = array_to_row( ['id' => 1234, 'deleted' => false, 'phase' => null], - schema: new Schema( - int_schema('id'), - bool_schema('deleted'), - ) + schema: schema(int_schema('id'), bool_schema('deleted')) ); self::assertEquals( @@ -94,11 +91,7 @@ public function test_building_single_row_from_array_with_schema_but_entries_not_ { $row = array_to_row( ['id' => 1234, 'deleted' => false], - schema: new Schema( - int_schema('id'), - bool_schema('deleted'), - str_schema('phase', true), - ) + schema: schema(int_schema('id'), bool_schema('deleted'), str_schema('phase', true)) ); self::assertEquals( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Comparator/NativeComparatorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Comparator/NativeComparatorTest.php index b0966c65d..09c51dda9 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Comparator/NativeComparatorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Comparator/NativeComparatorTest.php @@ -4,28 +4,28 @@ namespace Flow\ETL\Tests\Unit\Row\Comparator; -use function Flow\ETL\DSL\string_entry; -use Flow\ETL\Row; +use function Flow\ETL\DSL\{integer_entry, row, string_entry}; +use Flow\ETL\Row\Comparator\NativeComparator; use Flow\ETL\Tests\FlowTestCase; final class NativeComparatorTest extends FlowTestCase { public function test_row_comparison() : void { - $row = Row::create(string_entry('test', 'test')); - $nextRow = Row::create(string_entry('test', 'test')); + $row = row(string_entry('test', 'test')); + $nextRow = row(string_entry('test', 'test')); - $comparator = new Row\Comparator\NativeComparator(); + $comparator = new NativeComparator(); self::assertTrue($comparator->equals($row, $nextRow)); } public function test_row_comparison_for_different_rows() : void { - $row = Row::create(string_entry('test', 'test')); - $nextRow = Row::create(new Row\Entry\IntegerEntry('test', 2)); + $row = row(string_entry('test', 'test')); + $nextRow = row(integer_entry('test', 2)); - $comparator = new Row\Comparator\NativeComparator(); + $comparator = new NativeComparator(); self::assertFalse($comparator->equals($row, $nextRow)); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/EntriesTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/EntriesTest.php index 8b7d3afac..e5cddcdeb 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/EntriesTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/EntriesTest.php @@ -5,11 +5,10 @@ namespace Flow\ETL\Tests\Unit\Row; use function Flow\ETL\DSL\{bool_entry, int_entry, string_entry, type_int, type_string}; +use function Flow\ETL\DSL\{boolean_entry, enum_entry, integer_entry, structure_element, structure_entry, type_structure}; use Flow\ETL\Exception\{InvalidArgumentException, RuntimeException}; -use Flow\ETL\PHP\Type\Logical\Structure\StructureElement; -use Flow\ETL\PHP\Type\Logical\StructureType; -use Flow\ETL\Row\Entries; -use Flow\ETL\Row\Entry\{BooleanEntry, DateTimeEntry, EnumEntry, IntegerEntry, StructureEntry}; +use Flow\ETL\Row\Entry\{DateTimeEntry}; +use Flow\ETL\Row\{Entries, Entry}; use Flow\ETL\Tests\Fixtures\Enum\BasicEnum; use Flow\ETL\Tests\FlowTestCase; @@ -19,7 +18,7 @@ public function test_add_entry() : void { $newEntry = string_entry('entry-name', 'new string entry'); $entries = new Entries( - new IntegerEntry('integer-entry', 100) + integer_entry('integer-entry', 100) ); self::assertFalse($entries->has('entry-name')); @@ -34,7 +33,7 @@ public function test_add_multiple_duplicated_entries() : void $stringEntry = string_entry('string-name', 'new string entry'); $booleanEntry = string_entry('string-name', 'new string entry'); - $entries = new Entries(new IntegerEntry('integer-entry', 100)); + $entries = new Entries(integer_entry('integer-entry', 100)); $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Added entries names must be unique, given: [integer-entry, string-name] + [string-name]'); @@ -45,9 +44,9 @@ public function test_add_multiple_duplicated_entries() : void public function test_add_multiple_entries() : void { $stringEntry = string_entry('string-name', 'new string entry'); - $booleanEntry = new BooleanEntry('boolean-name', true); + $booleanEntry = boolean_entry('boolean-name', true); - $entries = new Entries(new IntegerEntry('integer-entry', 100)); + $entries = new Entries(integer_entry('integer-entry', 100)); self::assertFalse($entries->has('string-name')); self::assertFalse($entries->has('boolean-name')); @@ -64,8 +63,8 @@ public function test_adds_entry_when_it_does_not_exist() : void { $stringEntry = string_entry('string-entry', 'just a string'); $entries = new Entries( - $integerEntry = new IntegerEntry('integer-entry', 100), - $booleanEntry = new BooleanEntry('boolean-entry', true) + $integerEntry = integer_entry('integer-entry', 100), + $booleanEntry = boolean_entry('boolean-entry', true) ); $entries = $entries->set($stringEntry); @@ -75,7 +74,7 @@ public function test_adds_entry_when_it_does_not_exist() : void public function test_array_access_exists() : void { - $entries = new Entries(new IntegerEntry('id', 1), string_entry('name', 'John')); + $entries = new Entries(integer_entry('id', 1), string_entry('name', 'John')); self::assertTrue(isset($entries['id'])); self::assertFalse(isset($entries['test'])); @@ -83,7 +82,7 @@ public function test_array_access_exists() : void public function test_array_access_get() : void { - $entries = new Entries(new IntegerEntry('id', 1), string_entry('name', 'John')); + $entries = new Entries(integer_entry('id', 1), string_entry('name', 'John')); self::assertSame(1, $entries['id']->value()); self::assertSame('John', $entries['name']->value()); @@ -94,21 +93,21 @@ public function test_array_access_set() : void $this->expectException(RuntimeException::class); $this->expectExceptionMessage('In order to add new rows use Entries::add(Entry $entry) : self'); $entries = new Entries(); - $entries['id'] = new IntegerEntry('id', 1); + $entries['id'] = integer_entry('id', 1); } public function test_array_access_unset() : void { $this->expectException(RuntimeException::class); $this->expectExceptionMessage('In order to add new rows use Entries::remove(string $name) : self'); - $entries = new Entries(new IntegerEntry('id', 1)); + $entries = new Entries(integer_entry('id', 1)); unset($entries['id']); } public function test_assert_if_entry_exists_when_removing_entry() : void { $entries = new Entries( - new IntegerEntry('integer-entry', 100), + integer_entry('integer-entry', 100), string_entry('string-entry', 'just a string'), ); @@ -132,8 +131,8 @@ public function test_create_from_non_unique_entries() : void $this->expectExceptionMessage('Entry names must be unique, given: [integer-entry, integer-entry]'); new Entries( - new IntegerEntry('integer-entry', 100), - new IntegerEntry('integer-entry', 200) + integer_entry('integer-entry', 100), + integer_entry('integer-entry', 200) ); } @@ -206,12 +205,12 @@ public function test_merge_duplicated_entries_case_insensitive_() : void public function test_merge_entries() : void { $entries1 = new Entries(string_entry('string-name', 'new string entry')); - $entries2 = new Entries(new IntegerEntry('integer-entry', 100)); + $entries2 = new Entries(integer_entry('integer-entry', 100)); $entries = $entries1->merge($entries2); self::assertEquals( - new Entries(string_entry('string-name', 'new string entry'), new IntegerEntry('integer-entry', 100)), + new Entries(string_entry('string-name', 'new string entry'), integer_entry('integer-entry', 100)), $entries ); } @@ -219,21 +218,21 @@ public function test_merge_entries() : void public function test_order_entries() : void { $entries = new Entries( - new IntegerEntry('integer', 100), + integer_entry('integer', 100), string_entry('string', 'new string entry'), - new BooleanEntry('bool', true), + boolean_entry('bool', true), ); self::assertEquals( ['integer', 'string', 'bool'], - $entries->map(fn (\Flow\ETL\Row\Entry $e) => $e->name()) + $entries->map(fn (Entry $e) => $e->name()) ); $entries = $entries->order('bool', 'string', 'integer'); self::assertEquals( ['bool', 'string', 'integer'], - $entries->map(fn (\Flow\ETL\Row\Entry $e) => $e->name()) + $entries->map(fn (Entry $e) => $e->name()) ); } @@ -242,9 +241,9 @@ public function test_order_entries_without_providing_all_entry_names() : void $this->expectExceptionMessage('In order to sort entries in a given order you need to provide all entry names, given: "bool", "string", expected: "integer", "string", "bool"'); $entries = new Entries( - new IntegerEntry('integer', 100), + integer_entry('integer', 100), string_entry('string', 'new string entry'), - new BooleanEntry('bool', true), + boolean_entry('bool', true), ); $entries->order('bool', 'string'); @@ -254,8 +253,8 @@ public function test_overwrites_entry_when_it_exists() : void { $stringEntry = string_entry('entry-name', 'just a string'); $entries = new Entries( - new IntegerEntry('entry-name', 100), - $booleanEntry = new BooleanEntry('boolean-entry', true) + integer_entry('entry-name', 100), + $booleanEntry = boolean_entry('boolean-entry', true) ); $entries = $entries->set($stringEntry); @@ -266,7 +265,7 @@ public function test_overwrites_entry_when_it_exists() : void public function test_prevents_from_adding_entry_with_the_same_name() : void { $entries = new Entries( - new IntegerEntry('entry-name', 100) + integer_entry('entry-name', 100) ); $this->expectException(InvalidArgumentException::class); @@ -278,7 +277,7 @@ public function test_prevents_from_adding_entry_with_the_same_name() : void public function test_prevents_from_adding_entry_with_the_same_name_case_insensitive() : void { $entries = new Entries( - new IntegerEntry('entry-Name', 100) + integer_entry('entry-Name', 100) ); $newEntries = $entries->add(string_entry('entry-name', 'just a string')); @@ -292,7 +291,7 @@ public function test_prevents_from_creating_collection_with_duplicate_entry_name new Entries( string_entry('entry-name', 'just a string'), - new IntegerEntry('entry-name', 100) + integer_entry('entry-name', 100) ); } @@ -308,9 +307,9 @@ public function test_prevents_from_getting_unknown_entry() : void public function test_remove_entry() : void { $entries = new Entries( - $integerEntry = new IntegerEntry('integer-entry', 100), + $integerEntry = integer_entry('integer-entry', 100), string_entry('string-entry', 'just a string'), - $booleanEntry = new BooleanEntry('boolean-entry', true) + $booleanEntry = boolean_entry('boolean-entry', true) ); self::assertEquals(new Entries($integerEntry, $booleanEntry), $entries->remove('string-entry')); @@ -319,9 +318,9 @@ public function test_remove_entry() : void public function test_remove_multiple_entries() : void { $entries = new Entries( - new IntegerEntry('integer-entry', 100), + integer_entry('integer-entry', 100), string_entry('string-entry', 'just a string'), - $booleanEntry = new BooleanEntry('boolean-entry', true) + $booleanEntry = boolean_entry('boolean-entry', true) ); self::assertEquals(new Entries($booleanEntry), $entries->remove('string-entry', 'integer-entry')); @@ -350,23 +349,19 @@ public function test_set_entry() : void public function test_set_multiple_entries() : void { $entries = new Entries(string_entry('string-entry', 'just a string')); - $entries = $entries->set(string_entry('string-entry', 'new string'), new IntegerEntry('integer-entry', 100)); + $entries = $entries->set(string_entry('string-entry', 'new string'), integer_entry('integer-entry', 100)); - self::assertEquals(new Entries(string_entry('string-entry', 'new string'), new IntegerEntry('integer-entry', 100)), $entries); + self::assertEquals(new Entries(string_entry('string-entry', 'new string'), integer_entry('integer-entry', 100)), $entries); } public function test_sorts_entries_by_name() : void { $entries = new Entries( - $id = new IntegerEntry('id', 1234), - $deleted = new BooleanEntry('deleted', false), + $id = integer_entry('id', 1234), + $deleted = boolean_entry('deleted', false), $createdAt = new DateTimeEntry('created-at', new \DateTimeImmutable('2020-07-13 15:00')), $phase = string_entry('phase', null), - $items = new StructureEntry( - 'items', - ['item-id' => 1, 'name' => 'one'], - new StructureType([new StructureElement('id', type_int()), new StructureElement('name', type_string())]) - ) + $items = structure_entry('items', ['item-id' => 1, 'name' => 'one'], type_structure([structure_element('id', type_int()), structure_element('name', type_string())])) ); $sorted = $entries->sort(); @@ -374,13 +369,9 @@ public function test_sorts_entries_by_name() : void self::assertEquals( new Entries( $createdAt = new DateTimeEntry('created-at', new \DateTimeImmutable('2020-07-13 15:00')), - $deleted = new BooleanEntry('deleted', false), - $id = new IntegerEntry('id', 1234), - $items = new StructureEntry( - 'items', - ['item-id' => 1, 'name' => 'one'], - new StructureType([new StructureElement('id', type_int()), new StructureElement('name', type_string())]) - ), + $deleted = boolean_entry('deleted', false), + $id = integer_entry('id', 1234), + $items = structure_entry('items', ['item-id' => 1, 'name' => 'one'], type_structure([structure_element('id', type_int()), structure_element('name', type_string())])), $phase = string_entry('phase', null) ), $sorted @@ -390,16 +381,12 @@ public function test_sorts_entries_by_name() : void public function test_transforms_collection_to_array() : void { $entries = new Entries( - new IntegerEntry('id', 1234), - new BooleanEntry('deleted', false), + integer_entry('id', 1234), + boolean_entry('deleted', false), new DateTimeEntry('created-at', $createdAt = new \DateTimeImmutable('2020-07-13 15:00')), string_entry('phase', null), - new StructureEntry( - 'items', - ['item-id' => 1, 'name' => 'one'], - new StructureType([new StructureElement('id', type_int()), new StructureElement('name', type_string())]) - ), - new EnumEntry('enum', BasicEnum::three) + structure_entry('items', ['item-id' => 1, 'name' => 'one'], type_structure([structure_element('id', type_int()), structure_element('name', type_string())])), + enum_entry('enum', BasicEnum::three) ); self::assertEquals( @@ -421,16 +408,12 @@ public function test_transforms_collection_to_array() : void public function test_transforms_collection_to_array_without_keys() : void { $entries = new Entries( - new IntegerEntry('id', 1234), - new BooleanEntry('deleted', false), + integer_entry('id', 1234), + boolean_entry('deleted', false), new DateTimeEntry('created-at', $createdAt = new \DateTimeImmutable('2020-07-13 15:00')), string_entry('phase', null), - new StructureEntry( - 'items', - ['item-id' => 1, 'name' => 'one'], - new StructureType([new StructureElement('id', type_int()), new StructureElement('name', type_string())]) - ), - new EnumEntry('enum', BasicEnum::three) + structure_entry('items', ['item-id' => 1, 'name' => 'one'], type_structure([structure_element('id', type_int()), structure_element('name', type_string())])), + enum_entry('enum', BasicEnum::three) ); self::assertEquals( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/BooleanEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/BooleanEntryTest.php index 8943c30bd..7250af152 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/BooleanEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/BooleanEntryTest.php @@ -4,6 +4,7 @@ namespace Flow\ETL\Tests\Unit\Row\Entry; +use function Flow\ETL\DSL\boolean_entry; use Flow\ETL\Row\Entry\BooleanEntry; use Flow\ETL\Tests\FlowTestCase; use PHPUnit\Framework\Attributes\DataProvider; @@ -12,15 +13,15 @@ final class BooleanEntryTest extends FlowTestCase { public static function is_equal_data_provider() : \Generator { - yield 'equal names and values' => [true, new BooleanEntry('name', true), new BooleanEntry('name', true)]; - yield 'different names and values' => [false, new BooleanEntry('name', true), new BooleanEntry('different_name', true)]; - yield 'equal names and different values' => [false, new BooleanEntry('name', true), new BooleanEntry('name', false)]; - yield 'different names characters and equal values' => [false, new BooleanEntry('NAME', true), new BooleanEntry('name', true)]; + yield 'equal names and values' => [true, boolean_entry('name', true), boolean_entry('name', true)]; + yield 'different names and values' => [false, boolean_entry('name', true), boolean_entry('different_name', true)]; + yield 'equal names and different values' => [false, boolean_entry('name', true), boolean_entry('name', false)]; + yield 'different names characters and equal values' => [false, boolean_entry('NAME', true), boolean_entry('name', true)]; } public function test_entry_name_can_be_zero() : void { - self::assertSame('0', (new BooleanEntry('0', true))->name()); + self::assertSame('0', (boolean_entry('0', true))->name()); } #[DataProvider('is_equal_data_provider')] @@ -31,7 +32,7 @@ public function test_is_equal(bool $equals, BooleanEntry $entry, BooleanEntry $n public function test_map() : void { - $entry = new BooleanEntry('entry-name', true); + $entry = boolean_entry('entry-name', true); self::assertEquals( $entry, @@ -43,12 +44,12 @@ public function test_prevents_from_creating_entry_with_empty_entry_name() : void { $this->expectExceptionMessage('Entry name cannot be empty'); - new BooleanEntry('', true); + boolean_entry('', true); } public function test_renames_entry() : void { - $entry = new BooleanEntry('entry-name', true); + $entry = boolean_entry('entry-name', true); $newEntry = $entry->rename('new-entry-name'); self::assertEquals('new-entry-name', $newEntry->name()); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/DateEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/DateEntryTest.php index c4ddf2ace..c3f388c37 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/DateEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/DateEntryTest.php @@ -4,6 +4,7 @@ namespace Flow\ETL\Tests\Unit\Row\Entry; +use function Flow\ETL\DSL\date_entry; use Flow\ETL\Exception\InvalidArgumentException; use Flow\ETL\Row\Entry\DateEntry; use Flow\ETL\Tests\FlowTestCase; @@ -13,18 +14,18 @@ final class DateEntryTest extends FlowTestCase { public static function is_equal_data_provider() : \Generator { - yield 'equal names and values' => [true, new DateEntry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00')), new DateEntry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00'))]; - yield 'different names and values' => [false, new DateEntry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00')), new DateEntry('different_name', new \DateTimeImmutable('2020-01-01 00:00:00+00'))]; - yield 'equal names and different values day' => [false, new DateEntry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00')), new DateEntry('name', new \DateTimeImmutable('2020-01-02 00:00:00+00'))]; - yield 'equal names and different values tz' => [false, new DateEntry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00')), new DateEntry('name', new \DateTimeImmutable('2020-01-01 00:00:00+10'))]; - yield 'different names characters and equal values' => [false, new DateEntry('NAME', new \DateTimeImmutable('2020-01-01 00:00:00+00')), new DateEntry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00'))]; - yield 'equal names and equal values and different format' => [false, new DateEntry('name', new \DateTimeImmutable('2020-02-19 00:00:00+00')), new DateEntry('name', new \DateTimeImmutable('2020-01-02 00:00:00+00'))]; - yield 'equal names and equal values for given format' => [true, new DateEntry('name', new \DateTimeImmutable('2020-02-19 00:00:00+00')), new DateEntry('name', new \DateTimeImmutable('2020-02-19 00:00:00+00'))]; + yield 'equal names and values' => [true, date_entry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00')), date_entry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00'))]; + yield 'different names and values' => [false, date_entry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00')), date_entry('different_name', new \DateTimeImmutable('2020-01-01 00:00:00+00'))]; + yield 'equal names and different values day' => [false, date_entry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00')), date_entry('name', new \DateTimeImmutable('2020-01-02 00:00:00+00'))]; + yield 'equal names and different values tz' => [false, date_entry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00')), date_entry('name', new \DateTimeImmutable('2020-01-01 00:00:00+10'))]; + yield 'different names characters and equal values' => [false, date_entry('NAME', new \DateTimeImmutable('2020-01-01 00:00:00+00')), date_entry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00'))]; + yield 'equal names and equal values and different format' => [false, date_entry('name', new \DateTimeImmutable('2020-02-19 00:00:00+00')), date_entry('name', new \DateTimeImmutable('2020-01-02 00:00:00+00'))]; + yield 'equal names and equal values for given format' => [true, date_entry('name', new \DateTimeImmutable('2020-02-19 00:00:00+00')), date_entry('name', new \DateTimeImmutable('2020-02-19 00:00:00+00'))]; } public function test_entry_name_can_be_zero() : void { - self::assertSame('0', (new DateEntry('0', new \DateTimeImmutable('2020-07-13 12:00')))->name()); + self::assertSame('0', (date_entry('0', new \DateTimeImmutable('2020-07-13 12:00')))->name()); } public function test_invalid_date() : void @@ -32,7 +33,7 @@ public function test_invalid_date() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage("Invalid value given: 'random string', reason: Failed to parse time string (random string) at position 0 (r): The timezone could not be found in the database"); - new DateEntry('a', 'random string'); + date_entry('a', 'random string'); } #[DataProvider('is_equal_data_provider')] @@ -43,7 +44,7 @@ public function test_is_equal(bool $equals, DateEntry $entry, DateEntry $nextEnt public function test_map() : void { - $entry = new DateEntry('entry-name', new \DateTimeImmutable()); + $entry = date_entry('entry-name', new \DateTimeImmutable()); self::assertEquals( $entry, @@ -56,28 +57,28 @@ public function test_prevents_from_creating_entry_with_empty_entry_name() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Entry name cannot be empty'); - new DateEntry('', new \DateTimeImmutable('2020-07-13 12:00')); + date_entry('', new \DateTimeImmutable('2020-07-13 12:00')); } public function test_removes_time() : void { self::assertEquals( - (new DateEntry('entry-name', new \DateTimeImmutable('2020-07-13 12:00')))->value(), + (date_entry('entry-name', new \DateTimeImmutable('2020-07-13 12:00')))->value(), new \DateTimeImmutable('2020-07-13 00:00') ); self::assertEquals( - (new DateEntry('entry-name', '2020-07-13 12:00'))->value(), + (date_entry('entry-name', '2020-07-13 12:00'))->value(), new \DateTimeImmutable('2020-07-13 00:00') ); self::assertEquals( - (new DateEntry('entry-name', new \DateTime('2020-07-13 12:00')))->value(), + (date_entry('entry-name', new \DateTime('2020-07-13 12:00')))->value(), new \DateTimeImmutable('2020-07-13 00:00') ); } public function test_renames_entry() : void { - $entry = new DateEntry('entry-name', new \DateTimeImmutable()); + $entry = date_entry('entry-name', new \DateTimeImmutable()); $newEntry = $entry->rename('new-entry-name'); self::assertEquals('new-entry-name', $newEntry->name()); @@ -86,7 +87,7 @@ public function test_renames_entry() : void public function test_serialization() : void { - $string = new DateEntry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00')); + $string = date_entry('name', new \DateTimeImmutable('2020-01-01 00:00:00+00')); $serialized = \serialize($string); /** @var DateEntry $unserialized */ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/EnumEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/EnumEntryTest.php index f9eaa09a7..cc904d33d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/EnumEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/EnumEntryTest.php @@ -4,8 +4,7 @@ namespace Flow\ETL\Tests\Unit\Row\Entry; -use Flow\ETL\Row\Entry\EnumEntry; -use Flow\ETL\Row\Schema\Definition; +use function Flow\ETL\DSL\{enum_entry, enum_schema}; use Flow\ETL\Tests\Fixtures\Enum\{BackedIntEnum, BackedStringEnum, BasicEnum}; use Flow\ETL\Tests\FlowTestCase; @@ -13,7 +12,7 @@ final class EnumEntryTest extends FlowTestCase { public function test_creating_backed_int_enum_entry() : void { - $enum = new EnumEntry('enum', BackedIntEnum::one); + $enum = enum_entry('enum', BackedIntEnum::one); self::assertSame( BackedIntEnum::one, @@ -27,7 +26,7 @@ public function test_creating_backed_int_enum_entry() : void public function test_creating_backed_string_enum_entry() : void { - $enum = new EnumEntry('enum', BackedStringEnum::one); + $enum = enum_entry('enum', BackedStringEnum::one); self::assertSame( BackedStringEnum::one, @@ -41,7 +40,7 @@ public function test_creating_backed_string_enum_entry() : void public function test_creating_basic_enum_entry() : void { - $enum = new EnumEntry('enum', BasicEnum::one); + $enum = enum_entry('enum', BasicEnum::one); self::assertSame( BasicEnum::one, @@ -53,21 +52,18 @@ public function test_creating_basic_enum_entry() : void public function test_definition() : void { self::assertEquals( - Definition::enum( - 'enum', - BackedStringEnum::class - ), - (new EnumEntry('enum', BackedStringEnum::one))->definition() + enum_schema('enum', BackedStringEnum::class), + (enum_entry('enum', BackedStringEnum::one))->definition() ); } public function test_is_equal() : void { self::assertTrue( - (new EnumEntry('enum', BasicEnum::one))->isEqual(new EnumEntry('enum', BasicEnum::one)), + (enum_entry('enum', BasicEnum::one))->isEqual(enum_entry('enum', BasicEnum::one)), ); self::assertFalse( - (new EnumEntry('enum', BasicEnum::one))->isEqual(new EnumEntry('enum', BackedStringEnum::one)), + (enum_entry('enum', BasicEnum::one))->isEqual(enum_entry('enum', BackedStringEnum::one)), ); } @@ -75,15 +71,15 @@ public function test_to_string() : void { self::assertSame( 'one', - (new EnumEntry('enum', BasicEnum::one))->toString() + (enum_entry('enum', BasicEnum::one))->toString() ); self::assertSame( 'one', - (new EnumEntry('enum', BackedStringEnum::one))->toString() + (enum_entry('enum', BackedStringEnum::one))->toString() ); self::assertSame( 'one', - (new EnumEntry('enum', BackedIntEnum::one))->toString() + (enum_entry('enum', BackedIntEnum::one))->toString() ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/FloatEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/FloatEntryTest.php index a1fb7d6dc..01d725e7c 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/FloatEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/FloatEntryTest.php @@ -13,12 +13,12 @@ final class FloatEntryTest extends FlowTestCase { public static function is_equal_data_provider() : \Generator { - yield 'equal names and values' => [true, new FloatEntry('name', 1.0), new FloatEntry('name', 1.0)]; - yield 'different names and values' => [false, new FloatEntry('name', 1.0), new FloatEntry('different_name', 1.0)]; - yield 'equal names and different values' => [false, new FloatEntry('name', 1.0), new FloatEntry('name', 2)]; - yield 'different names characters and equal values' => [false, new FloatEntry('NAME', 1.1), new FloatEntry('name', 1.1)]; - yield 'different names characters and equal values with high precision' => [false, new FloatEntry('NAME', 1.00001), new FloatEntry('name', 1.00001)]; - yield 'different names characters and different values with high precision' => [false, new FloatEntry('NAME', 1.205502), new FloatEntry('name', 1.205501)]; + yield 'equal names and values' => [true, float_entry('name', 1.0), float_entry('name', 1.0)]; + yield 'different names and values' => [false, float_entry('name', 1.0), float_entry('different_name', 1.0)]; + yield 'equal names and different values' => [false, float_entry('name', 1.0), float_entry('name', 2)]; + yield 'different names characters and equal values' => [false, float_entry('NAME', 1.1), float_entry('name', 1.1)]; + yield 'different names characters and equal values with high precision' => [false, float_entry('NAME', 1.00001), float_entry('name', 1.00001)]; + yield 'different names characters and different values with high precision' => [false, float_entry('NAME', 1.205502), float_entry('name', 1.205501)]; } public function test_accessing_precission() : void @@ -29,7 +29,7 @@ public function test_accessing_precission() : void public function test_entry_name_can_be_zero() : void { - self::assertSame('0', (new FloatEntry('0', 0))->name()); + self::assertSame('0', (float_entry('0', 0))->name()); } #[DataProvider('is_equal_data_provider')] @@ -40,7 +40,7 @@ public function test_is_equal(bool $equals, FloatEntry $entry, FloatEntry $nextE public function test_map() : void { - $float = new FloatEntry('entry-name', 1); + $float = float_entry('entry-name', 1); self::assertEquals( $float, @@ -52,12 +52,12 @@ public function test_prevents_from_creating_entry_with_empty_entry_name() : void { $this->expectExceptionMessage('Entry name cannot be empty'); - new FloatEntry('', 10.01); + float_entry('', 10.01); } public function test_renames_entry() : void { - $float = new FloatEntry('entry-name', 100.00001); + $float = float_entry('entry-name', 100.00001); $newEntry = $float->rename('new-entry-name'); self::assertEquals('new-entry-name', $newEntry->name()); @@ -66,7 +66,7 @@ public function test_renames_entry() : void public function test_serialization() : void { - $float = new FloatEntry('name', 1.0); + $float = float_entry('name', 1.0); $serialized = \serialize($float); /** @var FloatEntry $unserialized */ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/IntegerEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/IntegerEntryTest.php index 73cc3c28f..664ff9341 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/IntegerEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/IntegerEntryTest.php @@ -4,6 +4,7 @@ namespace Flow\ETL\Tests\Unit\Row\Entry; +use function Flow\ETL\DSL\integer_entry; use Flow\ETL\Row\Entry\IntegerEntry; use Flow\ETL\Tests\FlowTestCase; use PHPUnit\Framework\Attributes\DataProvider; @@ -12,15 +13,15 @@ final class IntegerEntryTest extends FlowTestCase { public static function is_equal_data_provider() : \Generator { - yield 'equal names and values' => [true, new IntegerEntry('name', 1), new IntegerEntry('name', 1)]; - yield 'different names and values' => [false, new IntegerEntry('name', 1), new IntegerEntry('different_name', 1)]; - yield 'equal names and different values' => [false, new IntegerEntry('name', 1), new IntegerEntry('name', 2)]; - yield 'different names characters and equal values' => [false, new IntegerEntry('NAME', 1), new IntegerEntry('name', 1)]; + yield 'equal names and values' => [true, integer_entry('name', 1), integer_entry('name', 1)]; + yield 'different names and values' => [false, integer_entry('name', 1), integer_entry('different_name', 1)]; + yield 'equal names and different values' => [false, integer_entry('name', 1), integer_entry('name', 2)]; + yield 'different names characters and equal values' => [false, integer_entry('NAME', 1), integer_entry('name', 1)]; } public function test_entry_name_can_be_zero() : void { - self::assertSame('0', (new IntegerEntry('0', 0))->name()); + self::assertSame('0', (integer_entry('0', 0))->name()); } #[DataProvider('is_equal_data_provider')] @@ -31,7 +32,7 @@ public function test_is_equal(bool $equals, IntegerEntry $entry, IntegerEntry $n public function test_map() : void { - $entry = new IntegerEntry('entry-name', 1); + $entry = integer_entry('entry-name', 1); self::assertEquals( $entry, @@ -43,12 +44,12 @@ public function test_prevents_from_creating_entry_with_empty_entry_name() : void { $this->expectExceptionMessage('Entry name cannot be empty'); - new IntegerEntry('', 100); + integer_entry('', 100); } public function test_renames_entry() : void { - $entry = new IntegerEntry('entry-name', 100); + $entry = integer_entry('entry-name', 100); $newEntry = $entry->rename('new-entry-name'); self::assertEquals('new-entry-name', $newEntry->name()); @@ -57,7 +58,7 @@ public function test_renames_entry() : void public function test_serialization() : void { - $string = new IntegerEntry('name', 1); + $string = integer_entry('name', 1); $serialized = \serialize($string); /** @var IntegerEntry $unserialized */ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/JsonEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/JsonEntryTest.php index 21a25ce53..115d1b55c 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/JsonEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/JsonEntryTest.php @@ -4,8 +4,9 @@ namespace Flow\ETL\Tests\Unit\Row\Entry; +use function Flow\ETL\DSL\{integer_entry, json_entry}; use Flow\ETL\Exception\InvalidArgumentException; -use Flow\ETL\Row\Entry\{IntegerEntry, JsonEntry}; +use Flow\ETL\Row\Entry\{JsonEntry}; use Flow\ETL\Tests\FlowTestCase; use PHPUnit\Framework\Attributes\DataProvider; @@ -15,74 +16,74 @@ public static function is_equal_data_provider() : \Generator { yield 'equal names and equal simple integer arrays with the same order' => [ true, - new JsonEntry('name', [1, 2, 3]), - new JsonEntry('name', [1, 2, 3]), + json_entry('name', [1, 2, 3]), + json_entry('name', [1, 2, 3]), ]; yield 'equal names and equal simple integer arrays with different order' => [ true, - new JsonEntry('name', [1, 2, 3]), - new JsonEntry('name', [2, 1, 3]), + json_entry('name', [1, 2, 3]), + json_entry('name', [2, 1, 3]), ]; yield 'equal names and equal simple string arrays with the same order' => [ true, - new JsonEntry('name', ['aaa', 'bbb', 'ccc']), - new JsonEntry('name', ['aaa', 'bbb', 'ccc']), + json_entry('name', ['aaa', 'bbb', 'ccc']), + json_entry('name', ['aaa', 'bbb', 'ccc']), ]; yield 'equal names and equal simple string arrays with the same order but different characters size' => [ false, - new JsonEntry('name', ['aaa', 'bbb', 'ccc']), - new JsonEntry('name', ['aaa', 'BBB', 'ccc']), + json_entry('name', ['aaa', 'bbb', 'ccc']), + json_entry('name', ['aaa', 'BBB', 'ccc']), ]; yield 'equal names and equal multi dimensional array with the same order' => [ true, - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'bar'], 'baz']), - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'bar'], 'baz']), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'bar'], 'baz']), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'bar'], 'baz']), ]; yield 'equal names and equal multi dimensional array with different order' => [ true, - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'bar'], 'baz']), - new JsonEntry('name', ['baz', 'bar' => ['bar' => 'bar', 'foo' => 'foo'], 'foo' => 1]), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'bar'], 'baz']), + json_entry('name', ['baz', 'bar' => ['bar' => 'bar', 'foo' => 'foo'], 'foo' => 1]), ]; yield 'equal names and equal simple integerrish arrays with the same order' => [ false, - new JsonEntry('name', [1, 2, 3]), - new JsonEntry('name', ['1', '2', '3']), + json_entry('name', [1, 2, 3]), + json_entry('name', ['1', '2', '3']), ]; yield 'equal names and equal multi dimensional array with missing entry' => [ false, - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'bar'], 'baz']), - new JsonEntry('name', ['baz', 'bar' => ['bar' => 'bar'], 'foo' => 1]), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'bar'], 'baz']), + json_entry('name', ['baz', 'bar' => ['bar' => 'bar'], 'foo' => 1]), ]; yield 'equal names and equal multi dimensional array with different characters size' => [ false, - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'bar'], 'baz']), - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'BAR'], 'baz']), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'bar'], 'baz']), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'BAR'], 'baz']), ]; yield 'equal names and equal multi dimensional array with object same entries' => [ true, - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => $date = new \DateTimeImmutable('2020-01-01 00:00:00'), 'bar' => 'bar'], 'baz']), - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => $date = new \DateTimeImmutable('2020-01-01 00:00:00'), 'bar' => 'bar'], 'baz']), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => $date = new \DateTimeImmutable('2020-01-01 00:00:00'), 'bar' => 'bar'], 'baz']), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => $date = new \DateTimeImmutable('2020-01-01 00:00:00'), 'bar' => 'bar'], 'baz']), ]; yield 'equal names and equal multi dimensional array with object different entries' => [ false, - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => new \DateTimeImmutable('2020-01-01 00:00:00'), 'bar' => 'bar'], 'baz']), - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => new \DateTimeImmutable('2020-01-05 00:00:00'), 'bar' => 'bar'], 'baz']), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => new \DateTimeImmutable('2020-01-01 00:00:00'), 'bar' => 'bar'], 'baz']), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => new \DateTimeImmutable('2020-01-05 00:00:00'), 'bar' => 'bar'], 'baz']), ]; yield 'equal names and equal multi dimensional array with equals different entries' => [ true, - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => new \stdClass(), 'bar' => 'bar'], 'baz']), - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => new \stdClass(), 'bar' => 'bar'], 'baz']), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => new \stdClass(), 'bar' => 'bar'], 'baz']), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => new \stdClass(), 'bar' => 'bar'], 'baz']), ]; yield 'equal names and equal multi dimensional array with equals different entries 1' => [ true, - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => new IntegerEntry('test', 1), 'bar' => 'bar'], 'baz']), - new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => new IntegerEntry('test', 1), 'bar' => 'bar'], 'baz']), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => integer_entry('test', 1), 'bar' => 'bar'], 'baz']), + json_entry('name', ['foo' => 1, 'bar' => ['foo' => integer_entry('test', 1), 'bar' => 'bar'], 'baz']), ]; } public function test_empty_entry() : void { - $jsonEntry = new JsonEntry('empty', []); + $jsonEntry = json_entry('empty', []); $jsonObjectEntry = JsonEntry::object('empty', []); self::assertEquals([], $jsonEntry->value()); @@ -91,7 +92,7 @@ public function test_empty_entry() : void public function test_entry_name_can_be_zero() : void { - self::assertSame('0', (new JsonEntry('0', [1]))->name()); + self::assertSame('0', (json_entry('0', [1]))->name()); } public function test_invalid_json() : void @@ -99,7 +100,7 @@ public function test_invalid_json() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage("Invalid value given: 'random string', reason: Syntax error"); - new JsonEntry('a', 'random string'); + json_entry('a', 'random string'); } #[DataProvider('is_equal_data_provider')] @@ -115,7 +116,7 @@ public function test_map() : void ['item-id' => 2, 'name' => 'two'], ['item-id' => 3, 'name' => 'three'], ]; - $entry = (new JsonEntry('items', $items))->map(function (array $value) { + $entry = (json_entry('items', $items))->map(function (array $value) { \array_walk_recursive($value, function (&$v) : void { if (\is_string($v)) { $v = \trim($v); @@ -148,12 +149,12 @@ public function test_prevents_from_creating_entry_with_empty_entry_name() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Entry name cannot be empty'); - new JsonEntry('', [1, 2, 3]); + json_entry('', [1, 2, 3]); } public function test_renames_entry() : void { - $entry = new JsonEntry('entry-name', ['id' => 1, 'name' => 'one']); + $entry = json_entry('entry-name', ['id' => 1, 'name' => 'one']); $newEntry = $entry->rename('new-entry-name'); self::assertEquals('new-entry-name', $newEntry->name()); @@ -167,14 +168,14 @@ public function test_returns_json_as_value() : void ['item-id' => 2, 'name' => 'two'], ['item-id' => 3, 'name' => 'three'], ]; - $entry = new JsonEntry('items', $items); + $entry = json_entry('items', $items); self::assertEquals(\json_encode($items), $entry->toString()); } public function test_serialization() : void { - $entry = new JsonEntry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'bar'], 'baz']); + $entry = json_entry('name', ['foo' => 1, 'bar' => ['foo' => 'foo', 'bar' => 'bar'], 'baz']); $serialized = \serialize($entry); $unserialized = \unserialize($serialized); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/JsonObjectEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/JsonObjectEntryTest.php index 0bd863a0d..394fa8e8e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/JsonObjectEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/JsonObjectEntryTest.php @@ -4,7 +4,8 @@ namespace Flow\ETL\Tests\Unit\Row\Entry; -use Flow\ETL\Row\Entry\{IntegerEntry, JsonEntry}; +use function Flow\ETL\DSL\integer_entry; +use Flow\ETL\Row\Entry\{JsonEntry}; use Flow\ETL\Tests\FlowTestCase; use PHPUnit\Framework\Attributes\DataProvider; @@ -49,8 +50,8 @@ public static function is_equal_data_provider() : \Generator ]; yield 'equal names and equal multi dimensional array with equals different entries 1' => [ true, - JsonEntry::object('name', ['foo' => 1, 'bar' => ['foo' => new IntegerEntry('test', 1), 'bar' => 'bar'], 'baz' => 2]), - JsonEntry::object('name', ['foo' => 1, 'bar' => ['foo' => new IntegerEntry('test', 1), 'bar' => 'bar'], 'baz' => 2]), + JsonEntry::object('name', ['foo' => 1, 'bar' => ['foo' => integer_entry('test', 1), 'bar' => 'bar'], 'baz' => 2]), + JsonEntry::object('name', ['foo' => 1, 'bar' => ['foo' => integer_entry('test', 1), 'bar' => 'bar'], 'baz' => 2]), ]; } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/ListEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/ListEntryTest.php index c17fff032..bd5f9a6af 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/ListEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/ListEntryTest.php @@ -5,11 +5,8 @@ namespace Flow\ETL\Tests\Unit\Row\Entry; use function Flow\ETL\DSL\{list_entry, type_boolean, type_datetime, type_int, type_list, type_string}; +use function Flow\ETL\DSL\{list_schema, type_float, type_integer, type_object}; use Flow\ETL\Exception\InvalidArgumentException; -use Flow\ETL\PHP\Type\Logical\List\ListElement; -use Flow\ETL\PHP\Type\Logical\ListType; -use Flow\ETL\Row\Entry\ListEntry; -use Flow\ETL\Row\Schema\Definition; use Flow\ETL\Tests\FlowTestCase; final class ListEntryTest extends FlowTestCase @@ -33,9 +30,9 @@ public function test_creating_boolean_list_from_wrong_value_types() : void public function test_creating_datetime_list_from_wrong_value_types() : void { $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessage('Expected list got different types: array'); + $this->expectExceptionMessage('Expected list> got different types: array'); - new ListEntry('list', ['string', new \DateTimeImmutable()], new ListType(ListElement::object(\DateTimeInterface::class))); + list_entry('list', ['string', new \DateTimeImmutable()], type_list(type_object(\DateTimeInterface::class))); } public function test_creating_float_list_from_wrong_value_types() : void @@ -43,7 +40,7 @@ public function test_creating_float_list_from_wrong_value_types() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Expected list got different types: array'); - new ListEntry('list', ['string', 1.3], new ListType(ListElement::float())); + list_entry('list', ['string', 1.3], type_list(type_float())); } public function test_creating_integer_list_from_wrong_value_types() : void @@ -51,7 +48,7 @@ public function test_creating_integer_list_from_wrong_value_types() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Expected list got different types: array'); - new ListEntry('list', ['string', 1], new ListType(ListElement::integer())); + list_entry('list', ['string', 1], type_list(type_integer())); } public function test_creating_list_from_not_list_array() : void @@ -59,7 +56,7 @@ public function test_creating_list_from_not_list_array() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Expected list got different types: map'); - new ListEntry('list', ['a' => 1, 'b' => 2], new ListType(ListElement::integer())); + list_entry('list', ['a' => 1, 'b' => 2], type_list(type_integer())); } public function test_creating_string_list_from_wrong_value_types() : void @@ -67,13 +64,13 @@ public function test_creating_string_list_from_wrong_value_types() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Expected list got different types: array'); - new ListEntry('list', ['string', 1], new ListType(ListElement::string())); + list_entry('list', ['string', 1], type_list(type_string())); } public function test_definition() : void { self::assertEquals( - Definition::list('strings', new ListType(ListElement::string())), + list_schema('strings', type_list(type_string())), list_entry('strings', ['one', 'two', 'three'], type_list(type_string()))->definition() ); } @@ -129,7 +126,7 @@ public function test_to_string_date_time() : void public function test_type() : void { self::assertEquals( - new ListType(ListElement::string()), + type_list(type_string()), list_entry('strings', ['one', 'two', 'three'], type_list(type_string()))->type() ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/MapEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/MapEntryTest.php index 9aa2d2984..31905b498 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/MapEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/MapEntryTest.php @@ -4,11 +4,8 @@ namespace Flow\ETL\Tests\Unit\Row\Entry; +use function Flow\ETL\DSL\{map_entry, map_schema, type_boolean, type_datetime, type_float, type_integer, type_map, type_string}; use Flow\ETL\Exception\InvalidArgumentException; -use Flow\ETL\PHP\Type\Logical\Map\{MapKey, MapValue}; -use Flow\ETL\PHP\Type\Logical\MapType; -use Flow\ETL\Row\Entry\MapEntry; -use Flow\ETL\Row\Schema\Definition; use Flow\ETL\Tests\FlowTestCase; final class MapEntryTest extends FlowTestCase @@ -18,7 +15,7 @@ public function test_create_with_empty_name() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Entry name cannot be empty'); - new MapEntry('', ['one', 'two', 'three'], new MapType(MapKey::integer(), MapValue::string())); + map_entry('', ['one', 'two', 'three'], type_map(type_integer(), type_string())); } public function test_creating_boolean_map_from_wrong_value_types() : void @@ -26,7 +23,7 @@ public function test_creating_boolean_map_from_wrong_value_types() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Expected map got different types: array'); - new MapEntry('map', ['string', false], new MapType(MapKey::integer(), MapValue::boolean())); + map_entry('map', ['string', false], type_map(type_integer(), type_boolean())); } public function test_creating_datetime_map_from_wrong_value_types() : void @@ -34,7 +31,7 @@ public function test_creating_datetime_map_from_wrong_value_types() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Expected map got different types: array'); - new MapEntry('map', ['string', new \DateTimeImmutable()], new MapType(MapKey::integer(), MapValue::datetime())); + map_entry('map', ['string', new \DateTimeImmutable()], type_map(type_integer(), type_datetime())); } public function test_creating_float_map_from_wrong_value_types() : void @@ -42,7 +39,7 @@ public function test_creating_float_map_from_wrong_value_types() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Expected map got different types: array'); - new MapEntry('map', ['string', 1.3], new MapType(MapKey::integer(), MapValue::float())); + map_entry('map', ['string', 1.3], type_map(type_integer(), type_float())); } public function test_creating_integer_map_from_wrong_value_types() : void @@ -50,7 +47,7 @@ public function test_creating_integer_map_from_wrong_value_types() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Expected map got different types: array'); - new MapEntry('map', ['string', 1], new MapType(MapKey::integer(), MapValue::integer())); + map_entry('map', ['string', 1], type_map(type_integer(), type_integer())); } public function test_creating_map_from_not_map_array() : void @@ -58,7 +55,7 @@ public function test_creating_map_from_not_map_array() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Expected map got different types: map'); - new MapEntry('map', ['a' => 1, 'b' => 2], new MapType(MapKey::integer(), MapValue::integer())); + map_entry('map', ['a' => 1, 'b' => 2], type_map(type_integer(), type_integer())); } public function test_creating_string_map_from_wrong_value_types() : void @@ -66,46 +63,46 @@ public function test_creating_string_map_from_wrong_value_types() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Expected map got different types: array'); - new MapEntry('map', ['string', 1], new MapType(MapKey::integer(), MapValue::string())); + map_entry('map', ['string', 1], type_map(type_integer(), type_string())); } public function test_definition() : void { self::assertEquals( - Definition::map('strings', new MapType(MapKey::integer(), MapValue::string())), - (new MapEntry('strings', ['one', 'two', 'three'], new MapType(MapKey::integer(), MapValue::string())))->definition() + map_schema('strings', type_map(type_integer(), type_string())), + (map_entry('strings', ['one', 'two', 'three'], type_map(type_integer(), type_string())))->definition() ); } public function test_is_equal() : void { self::assertTrue( - (new MapEntry('strings', ['one', 'two', 'three'], new MapType(MapKey::integer(), MapValue::string()))) - ->isEqual((new MapEntry('strings', ['one', 'two', 'three'], new MapType(MapKey::integer(), MapValue::string())))) + (map_entry('strings', ['one', 'two', 'three'], type_map(type_integer(), type_string()))) + ->isEqual((map_entry('strings', ['one', 'two', 'three'], type_map(type_integer(), type_string())))) ); self::assertFalse( - (new MapEntry('strings', ['one', 'two', 'three'], new MapType(MapKey::integer(), MapValue::string()))) - ->isEqual(new MapEntry('strings', [1, 2, 3], new MapType(MapKey::integer(), MapValue::integer()))) + (map_entry('strings', ['one', 'two', 'three'], type_map(type_integer(), type_string()))) + ->isEqual(map_entry('strings', [1, 2, 3], type_map(type_integer(), type_integer()))) ); self::assertTrue( - (new MapEntry('strings', ['one', 'two', 'three'], new MapType(MapKey::integer(), MapValue::string()))) - ->isEqual((new MapEntry('strings', ['one', 'two', 'three'], new MapType(MapKey::integer(), MapValue::string())))) + (map_entry('strings', ['one', 'two', 'three'], type_map(type_integer(), type_string()))) + ->isEqual((map_entry('strings', ['one', 'two', 'three'], type_map(type_integer(), type_string())))) ); } public function test_map() : void { self::assertEquals( - (new MapEntry('strings', ['one, two, three'], new MapType(MapKey::integer(), MapValue::string()))), - (new MapEntry('strings', ['one', 'two', 'three'], new MapType(MapKey::integer(), MapValue::string())))->map(fn (array $value) => [\implode(', ', $value)]) + (map_entry('strings', ['one, two, three'], type_map(type_integer(), type_string()))), + (map_entry('strings', ['one', 'two', 'three'], type_map(type_integer(), type_string())))->map(fn (array $value) => [\implode(', ', $value)]) ); } public function test_rename() : void { self::assertEquals( - (new MapEntry('new_name', ['one', 'two', 'three'], new MapType(MapKey::integer(), MapValue::string()))), - (new MapEntry('strings', ['one', 'two', 'three'], new MapType(MapKey::integer(), MapValue::string())))->rename('new_name') + (map_entry('new_name', ['one', 'two', 'three'], type_map(type_integer(), type_string()))), + (map_entry('strings', ['one', 'two', 'three'], type_map(type_integer(), type_string())))->rename('new_name') ); } @@ -113,15 +110,15 @@ public function test_to_string() : void { self::assertSame( '["one","two","three"]', - (new MapEntry('strings', ['one', 'two', 'three'], new MapType(MapKey::integer(), MapValue::string())))->toString() + (map_entry('strings', ['one', 'two', 'three'], type_map(type_integer(), type_string())))->toString() ); } public function test_type() : void { self::assertEquals( - new MapType(MapKey::integer(), MapValue::string()), - (new MapEntry('strings', ['one', 'two', 'three'], new MapType(MapKey::integer(), MapValue::string())))->type() + type_map(type_integer(), type_string()), + (map_entry('strings', ['one', 'two', 'three'], type_map(type_integer(), type_string())))->type() ); } @@ -129,11 +126,11 @@ public function test_value() : void { self::assertSame( ['one', 'two', 'three'], - (new MapEntry('strings', ['one', 'two', 'three'], new MapType(MapKey::integer(), MapValue::string())))->value() + (map_entry('strings', ['one', 'two', 'three'], type_map(type_integer(), type_string())))->value() ); self::assertSame( ['one' => 'two'], - (new MapEntry('strings', ['one' => 'two'], new MapType(MapKey::string(), MapValue::string())))->value() + (map_entry('strings', ['one' => 'two'], type_map(type_string(), type_string())))->value() ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/StructureEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/StructureEntryTest.php index 76274750f..abb88c7b8 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/StructureEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/StructureEntryTest.php @@ -5,11 +5,9 @@ namespace Flow\ETL\Tests\Unit\Row\Entry; use function Flow\ETL\DSL\{struct_element, struct_entry, struct_type, type_array, type_int, type_string}; +use function Flow\ETL\DSL\{structure_entry, structure_schema, type_map}; use Flow\ETL\Exception\InvalidArgumentException; -use Flow\ETL\PHP\Type\Logical\Map\{MapKey, MapValue}; -use Flow\ETL\PHP\Type\Logical\MapType; use Flow\ETL\Row\Entry\StructureEntry; -use Flow\ETL\Row\Schema\Definition; use Flow\ETL\Tests\FlowTestCase; use PHPUnit\Framework\Attributes\DataProvider; @@ -19,81 +17,33 @@ public static function is_equal_data_provider() : \Generator { yield 'equal names and equal simple same integer entries' => [ true, - new StructureEntry( - 'name', - ['1' => 1, '2' => 2, '3' => 3], - struct_type([struct_element('1', type_int()), struct_element('2', type_int()), struct_element('3', type_int())]) - ), - new StructureEntry( - 'name', - ['1' => 1, '2' => 2, '3' => 3], - struct_type([struct_element('1', type_int()), struct_element('2', type_int()), struct_element('3', type_int())]) - ), + structure_entry('name', ['1' => 1, '2' => 2, '3' => 3], struct_type([struct_element('1', type_int()), struct_element('2', type_int()), struct_element('3', type_int())])), + structure_entry('name', ['1' => 1, '2' => 2, '3' => 3], struct_type([struct_element('1', type_int()), struct_element('2', type_int()), struct_element('3', type_int())])), ]; yield 'equal names and equal simple same integer entries with different number of entries' => [ false, - new StructureEntry( - 'name', - ['1' => 1, '2' => 2, '3' => 3], - struct_type([struct_element('1', type_int()), struct_element('2', type_string()), struct_element('3', type_string())]) - ), - new StructureEntry( - 'name', - ['1' => 1, '2' => 2], - struct_type([struct_element('1', type_int()), struct_element('2', type_string())]) - ), + structure_entry('name', ['1' => 1, '2' => 2, '3' => 3], struct_type([struct_element('1', type_int()), struct_element('2', type_string()), struct_element('3', type_string())])), + structure_entry('name', ['1' => 1, '2' => 2], struct_type([struct_element('1', type_int()), struct_element('2', type_string())])), ]; yield 'equal names and equal simple same integer entries with different number of entries reversed' => [ false, - new StructureEntry( - 'name', - ['1' => 1, '2' => 2], - struct_type([struct_element('1', type_int()), struct_element('2', type_string())]) - ), - new StructureEntry( - 'name', - ['1' => 1, '2' => 2, '3' => 3], - struct_type([struct_element('1', type_int()), struct_element('2', type_string()), struct_element('3', type_string())]) - ), + structure_entry('name', ['1' => 1, '2' => 2], struct_type([struct_element('1', type_int()), struct_element('2', type_string())])), + structure_entry('name', ['1' => 1, '2' => 2, '3' => 3], struct_type([struct_element('1', type_int()), struct_element('2', type_string()), struct_element('3', type_string())])), ]; yield 'equal names and equal simple same array entries' => [ true, - new StructureEntry( - 'name', - ['json' => ['foo' => ['bar' => 'baz']]], - struct_type([struct_element('json', new MapType(MapKey::string(), MapValue::map(new MapType(MapKey::string(), MapValue::string()))))]) - ), - new StructureEntry( - 'name', - ['json' => ['foo' => ['bar' => 'baz']]], - struct_type([struct_element('json', new MapType(MapKey::string(), MapValue::map(new MapType(MapKey::string(), MapValue::string()))))]) - ), + structure_entry('name', ['json' => ['foo' => ['bar' => 'baz']]], struct_type([struct_element('json', type_map(type_string(), type_map(type_string(), type_string())))])), + structure_entry('name', ['json' => ['foo' => ['bar' => 'baz']]], struct_type([struct_element('json', type_map(type_string(), type_map(type_string(), type_string())))])), ]; yield 'equal names and equal simple same collection entries' => [ true, - new StructureEntry( - 'name', - ['json' => ['1' => 1, '2' => 2, '3' => 3]], - struct_type([struct_element('json', type_array())]) - ), - new StructureEntry( - 'name', - ['json' => ['1' => 1, '2' => 2, '3' => 3]], - struct_type([struct_element('json', type_array())]) - ), + structure_entry('name', ['json' => ['1' => 1, '2' => 2, '3' => 3]], struct_type([struct_element('json', type_array())])), + structure_entry('name', ['json' => ['1' => 1, '2' => 2, '3' => 3]], struct_type([struct_element('json', type_array())])), ]; yield 'equal names and equal simple different collection entries' => [ false, - new StructureEntry( - 'name', - ['json' => ['5' => 5, '2' => 2, '1' => 1]], - struct_type([struct_element('json', type_array())]) - ), - new StructureEntry( - 'name', - ['json' => ['1' => 1, '2' => 2, '3' => 3]], - struct_type([struct_element('json', type_array())]) - ), + structure_entry('name', ['json' => ['5' => 5, '2' => 2, '1' => 1]], struct_type([struct_element('json', type_array())])), + structure_entry('name', ['json' => ['1' => 1, '2' => 2, '3' => 3]], struct_type([struct_element('json', type_array())])), ]; } @@ -102,11 +52,7 @@ public function test_creating_string_structure_from_wrong_value_types() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Expected structure{id: integer, name: string} got different types: list'); - new StructureEntry( - 'test', - [1, 2, 3], - struct_type([struct_element('id', type_int()), struct_element('name', type_string())]) - ); + structure_entry('test', [1, 2, 3], struct_type([struct_element('id', type_int()), struct_element('name', type_string())])); } public function test_definition() : void @@ -135,20 +81,17 @@ public function test_definition() : void ); self::assertEquals( - Definition::structure( - 'items', - struct_type([ - struct_element('id', type_int()), - struct_element('name', type_string()), - struct_element( - 'address', - struct_type([ - struct_element('street', type_string()), - struct_element('city', type_string()), - ]) - ), - ]), - ), + structure_schema('items', struct_type([ + struct_element('id', type_int()), + struct_element('name', type_string()), + struct_element( + 'address', + struct_type([ + struct_element('street', type_string()), + struct_element('city', type_string()), + ]) + ), + ])), $entry->definition() ); } @@ -158,11 +101,7 @@ public function test_entry_name_can_be_zero() : void self::assertSame( '0', ( - new StructureEntry( - '0', - ['id' => 1, 'name' => 'one'], - struct_type([struct_element('id', type_int()), struct_element('name', type_string())]) - ) + structure_entry('0', ['id' => 1, 'name' => 'one'], struct_type([struct_element('id', type_int()), struct_element('name', type_string())])) )->name() ); } @@ -175,11 +114,7 @@ public function test_is_equal(bool $equals, StructureEntry $entry, StructureEntr public function test_map() : void { - $entry = new StructureEntry( - 'entry-name', - ['id' => 1234], - struct_type([struct_element('id', type_int())]) - ); + $entry = structure_entry('entry-name', ['id' => 1234], struct_type([struct_element('id', type_int())])); self::assertEquals( $entry, @@ -192,20 +127,12 @@ public function test_prevents_from_creating_entry_with_empty_entry_name() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Entry name cannot be empty'); - new StructureEntry( - '', - ['id' => 1, 'name' => 'one'], - struct_type([struct_element('id', type_int()), struct_element('name', type_string())]) - ); + structure_entry('', ['id' => 1, 'name' => 'one'], struct_type([struct_element('id', type_int()), struct_element('name', type_string())])); } public function test_renames_entry() : void { - $entry = new StructureEntry( - 'entry-name', - ['id' => 1234], - struct_type([struct_element('id', type_int())]) - ); + $entry = structure_entry('entry-name', ['id' => 1234], struct_type([struct_element('id', type_int())])); $newEntry = $entry->rename('new-entry-name'); self::assertEquals('new-entry-name', $newEntry->name()); @@ -214,11 +141,7 @@ public function test_renames_entry() : void public function test_returns_array_as_value() : void { - $entry = new StructureEntry( - 'items', - ['item-id' => 1, 'name' => 'one'], - struct_type([struct_element('id', type_int()), struct_element('name', type_string())]) - ); + $entry = structure_entry('items', ['item-id' => 1, 'name' => 'one'], struct_type([struct_element('id', type_int()), struct_element('name', type_string())])); self::assertEquals( [ @@ -231,11 +154,7 @@ public function test_returns_array_as_value() : void public function test_serialization() : void { - $string = new StructureEntry( - 'name', - ['json' => ['5' => 5, '2' => 2, '3' => 3]], - struct_type([struct_element('json', type_array())]) - ); + $string = structure_entry('name', ['json' => ['5' => 5, '2' => 2, '3' => 3]], struct_type([struct_element('json', type_array())])); $serialized = \serialize($string); /** @var StructureEntry $unserialized */ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/TimeEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/TimeEntryTest.php index 4965e7cb1..f4bdd6a39 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/TimeEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/TimeEntryTest.php @@ -4,6 +4,7 @@ namespace Flow\ETL\Tests\Unit\Row\Entry; +use function Flow\ETL\DSL\time_entry; use Flow\ETL\Exception\InvalidArgumentException; use Flow\ETL\Row\Entry\TimeEntry; use Flow\ETL\Tests\FlowTestCase; @@ -13,10 +14,10 @@ final class TimeEntryTest extends FlowTestCase { public static function is_equal_data_provider() : \Generator { - yield 'equal names and values' => [true, new TimeEntry('name', new \DateInterval('PT10S')), new TimeEntry('name', new \DateInterval('PT10S'))]; - yield 'different names and values' => [false, new TimeEntry('name', new \DateInterval('PT10S')), new TimeEntry('different_name', new \DateInterval('PT20S'))]; - yield 'equal names and different values day' => [false, new TimeEntry('name', new \DateInterval('PT1S')), new TimeEntry('name', new \DateInterval('PT2S'))]; - yield 'different names characters and equal values' => [false, new TimeEntry('NAME', new \DateInterval('P1D')), new TimeEntry('name', new \DateInterval('P1D'))]; + yield 'equal names and values' => [true, time_entry('name', new \DateInterval('PT10S')), time_entry('name', new \DateInterval('PT10S'))]; + yield 'different names and values' => [false, time_entry('name', new \DateInterval('PT10S')), time_entry('different_name', new \DateInterval('PT20S'))]; + yield 'equal names and different values day' => [false, time_entry('name', new \DateInterval('PT1S')), time_entry('name', new \DateInterval('PT2S'))]; + yield 'different names characters and equal values' => [false, time_entry('NAME', new \DateInterval('P1D')), time_entry('name', new \DateInterval('P1D'))]; } public function test_creating_from_days() : void @@ -69,17 +70,17 @@ public function test_creating_from_seconds() : void public function test_creating_from_time_string() : void { - $timeEntry = new TimeEntry('name', '00:01:23'); + $timeEntry = time_entry('name', '00:01:23'); self::assertEquals( - new TimeEntry('name', new \DateInterval('PT1M23S')), + time_entry('name', new \DateInterval('PT1M23S')), $timeEntry ); } public function test_entry_name_can_be_zero() : void { - self::assertSame('0', (new TimeEntry('0', new \DateInterval('PT10S')))->name()); + self::assertSame('0', (time_entry('0', new \DateInterval('PT10S')))->name()); } #[DataProvider('is_equal_data_provider')] @@ -90,7 +91,7 @@ public function test_is_equal(bool $equals, TimeEntry $entry, TimeEntry $nextEnt public function test_map() : void { - $entry = new TimeEntry('entry-name', new \DateInterval('PT10S')); + $entry = time_entry('entry-name', new \DateInterval('PT10S')); self::assertEquals( $entry, @@ -103,12 +104,12 @@ public function test_prevents_from_creating_entry_with_empty_entry_name() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Entry name cannot be empty'); - new TimeEntry('', new \DateInterval('P1D')); + time_entry('', new \DateInterval('P1D')); } public function test_renames_entry() : void { - $entry = new TimeEntry('entry-name', new \DateInterval('P1D')); + $entry = time_entry('entry-name', new \DateInterval('P1D')); $newEntry = $entry->rename('new-entry-name'); self::assertEquals('new-entry-name', $newEntry->name()); @@ -117,7 +118,7 @@ public function test_renames_entry() : void public function test_serialization() : void { - $string = new TimeEntry('name', new \DateInterval('P1D')); + $string = time_entry('name', new \DateInterval('P1D')); $serialized = \serialize($string); /** @var TimeEntry $unserialized */ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/UuidEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/UuidEntryTest.php index bb09b7822..11b70a031 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/UuidEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/UuidEntryTest.php @@ -4,6 +4,7 @@ namespace Flow\ETL\Tests\Unit\Row\Entry; +use function Flow\ETL\DSL\uuid_entry; use Flow\ETL\PHP\Value\Uuid; use Flow\ETL\Row\Entry\UuidEntry; use Flow\ETL\Tests\FlowTestCase; @@ -15,23 +16,23 @@ public static function is_equal_data_provider() : \Generator { yield 'equal names and values' => [ true, - new UuidEntry('name', Uuid::fromString('00000000-0000-0000-0000-000000000000')), - new UuidEntry('name', Uuid::fromString('00000000-0000-0000-0000-000000000000')), + uuid_entry('name', Uuid::fromString('00000000-0000-0000-0000-000000000000')), + uuid_entry('name', Uuid::fromString('00000000-0000-0000-0000-000000000000')), ]; yield 'different names and values' => [ false, - new UuidEntry('name', Uuid::fromString('00000000-0000-0000-0000-000000000000')), - new UuidEntry('different_name', Uuid::fromString('11111111-1111-1111-1111-111111111111')), + uuid_entry('name', Uuid::fromString('00000000-0000-0000-0000-000000000000')), + uuid_entry('different_name', Uuid::fromString('11111111-1111-1111-1111-111111111111')), ]; yield 'equal names and different values' => [ false, - new UuidEntry('name', Uuid::fromString('00000000-0000-0000-0000-000000000000')), - new UuidEntry('name', Uuid::fromString('11111111-1111-1111-1111-111111111111')), + uuid_entry('name', Uuid::fromString('00000000-0000-0000-0000-000000000000')), + uuid_entry('name', Uuid::fromString('11111111-1111-1111-1111-111111111111')), ]; yield 'different names characters and equal values' => [ false, - new UuidEntry('NAME', Uuid::fromString('00000000-0000-0000-0000-000000000000')), - new UuidEntry('name', Uuid::fromString('00000000-0000-0000-0000-000000000000')), + uuid_entry('NAME', Uuid::fromString('00000000-0000-0000-0000-000000000000')), + uuid_entry('name', Uuid::fromString('00000000-0000-0000-0000-000000000000')), ]; } @@ -66,7 +67,7 @@ public function test_is_equal(bool $equals, UuidEntry $entry, UuidEntry $nextEnt public function test_map() : void { - $entry = new UuidEntry('entry-name', Uuid::fromString('00000000-0000-0000-0000-000000000000')); + $entry = uuid_entry('entry-name', Uuid::fromString('00000000-0000-0000-0000-000000000000')); self::assertEquals( $entry, @@ -85,12 +86,12 @@ public function test_prevents_from_creating_entry_with_empty_entry_name() : void { $this->expectExceptionMessage('Entry name cannot be empty'); - new UuidEntry('', Uuid::fromString('00000000-0000-0000-0000-000000000000')); + uuid_entry('', Uuid::fromString('00000000-0000-0000-0000-000000000000')); } public function test_renames_entry() : void { - $entry = new UuidEntry('entry-name', $uuid = Uuid::fromString('00000000-0000-0000-0000-000000000000')); + $entry = uuid_entry('entry-name', $uuid = Uuid::fromString('00000000-0000-0000-0000-000000000000')); /** @var UuidEntry $newEntry */ $newEntry = $entry->rename('new-entry-name'); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/XMLElementEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/XMLElementEntryTest.php index 343053226..f6655ef6c 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/XMLElementEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/XMLElementEntryTest.php @@ -4,18 +4,15 @@ namespace Flow\ETL\Tests\Unit\Row\Entry; +use function Flow\ETL\DSL\xml_element_entry; use Flow\ETL\Exception\InvalidArgumentException; -use Flow\ETL\Row\Entry\XMLElementEntry; use Flow\ETL\Tests\FlowTestCase; final class XMLElementEntryTest extends FlowTestCase { public function test_create_from_string() : void { - $entry = new XMLElementEntry( - 'node', - 'value' - ); + $entry = xml_element_entry('node', 'value'); self::assertInstanceOf(\DOMElement::class, $entry->value()); self::assertEquals('value', $entry->toString()); @@ -26,10 +23,7 @@ public function test_create_from_string_fails_with_invalid_xml() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Given string "test" is not valid XML'); - new XMLElementEntry( - 'node', - 'test' - ); + xml_element_entry('node', 'test'); } public function test_serialization() : void @@ -37,10 +31,7 @@ public function test_serialization() : void $element = (new \DOMDocument())->createElement('testElement', 'This is a test'); $element->setAttribute('test', 'value'); - $entry = new XMLElementEntry( - 'node', - clone $element, - ); + $entry = xml_element_entry('node', clone $element); $serialized = \serialize($entry); $unserialized = \unserialize($serialized); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/XMLEntryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/XMLEntryTest.php index 5e4f2eb7d..6f31a8e9a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/XMLEntryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Entry/XMLEntryTest.php @@ -21,8 +21,8 @@ public static function is_equal_data_provider() : \Generator yield 'equal names and equal simple xml documents' => [ true, - new XMLEntry('name', $doc1), - new XMLEntry('name', $doc2), + xml_entry('name', $doc1), + xml_entry('name', $doc2), ]; $doc1 = new \DOMDocument(); @@ -32,8 +32,8 @@ public static function is_equal_data_provider() : \Generator yield 'equal names and equal simple xml documents with different order of attributes' => [ true, - new XMLEntry('name', $doc1), - new XMLEntry('name', $doc2), + xml_entry('name', $doc1), + xml_entry('name', $doc2), ]; $doc1 = new \DOMDocument(); @@ -43,8 +43,8 @@ public static function is_equal_data_provider() : \Generator yield 'equal nodes but different attributes' => [ false, - new XMLEntry('name', $doc1), - new XMLEntry('name', $doc2), + xml_entry('name', $doc1), + xml_entry('name', $doc2), ]; $doc1 = new \DOMDocument(); @@ -54,8 +54,8 @@ public static function is_equal_data_provider() : \Generator yield 'equal attributes but different nodes' => [ false, - new XMLEntry('name', $doc1), - new XMLEntry('name', $doc2), + xml_entry('name', $doc1), + xml_entry('name', $doc2), ]; $doc1 = new \DOMDocument(); @@ -64,8 +64,8 @@ public static function is_equal_data_provider() : \Generator yield 'compare with empty document' => [ false, - new XMLEntry('name', $doc1), - new XMLEntry('name', $doc2), + xml_entry('name', $doc1), + xml_entry('name', $doc2), ]; $doc1 = new \DOMDocument(); @@ -73,8 +73,8 @@ public static function is_equal_data_provider() : \Generator yield 'compare twp empty documents' => [ true, - new XMLEntry('name', $doc1), - new XMLEntry('name', $doc2), + xml_entry('name', $doc1), + xml_entry('name', $doc2), ]; } @@ -106,12 +106,12 @@ public function test_creating_entry_from_invalid_xml_string() : void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Given string "foo" is not valid XML'); - new XMLEntry('name', 'foo'); + xml_entry('name', 'foo'); } public function test_creating_entry_from_valid_xml_string() : void { - $entry = new XMLEntry('name', '123'); + $entry = xml_entry('name', '123'); self::assertSame('name', $entry->name()); self::assertSame('123', $entry->__toString()); @@ -120,7 +120,7 @@ public function test_creating_entry_from_valid_xml_string() : void public function test_creating_xml_entry_with_empty_dom_document() : void { $doc = new \DOMDocument(); - $entry = new XMLEntry('name', $doc); + $entry = xml_entry('name', $doc); self::assertSame('name', $entry->name()); self::assertSame($doc, $entry->value()); @@ -135,7 +135,7 @@ public function test_is_equal(bool $equals, XMLEntry $entry, XMLEntry $nextEntry public function test_serialization() : void { - $entry = new XMLEntry('xml', <<<'XML' + $entry = xml_entry('xml', <<<'XML' diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/EntryReferenceTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/EntryReferenceTest.php index 74928df1e..293fd30aa 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/EntryReferenceTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/EntryReferenceTest.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Tests\Unit\Row; +use function Flow\ETL\DSL\row; use function Flow\ETL\DSL\{int_entry, ref}; -use Flow\ETL\Row; use Flow\ETL\Tests\FlowTestCase; final class EntryReferenceTest extends FlowTestCase @@ -15,7 +15,7 @@ public function test_executing_equals_expression() : void $ref = ref('a')->equals(ref('b')); self::assertTrue( - $ref->eval(Row::create(int_entry('a', 1), int_entry('b', 1))) + $ref->eval(row(int_entry('a', 1), int_entry('b', 1))) ); } @@ -25,7 +25,7 @@ public function test_executing_expression() : void self::assertSame( 100, - $ref->eval(Row::create(int_entry('a', 1))) + $ref->eval(row(int_entry('a', 1))) ); } @@ -34,11 +34,11 @@ public function test_is_even() : void $ref = ref('a')->isEven(); self::assertFalse( - $ref->eval(Row::create(int_entry('a', 1))) + $ref->eval(row(int_entry('a', 1))) ); self::assertTrue( - $ref->eval(Row::create(int_entry('a', 2))) + $ref->eval(row(int_entry('a', 2))) ); } @@ -47,11 +47,11 @@ public function test_is_odd() : void $ref = ref('a')->isOdd(); self::assertTrue( - $ref->eval(Row::create(int_entry('a', 1))) + $ref->eval(row(int_entry('a', 1))) ); self::assertFalse( - $ref->eval(Row::create(int_entry('a', 2))) + $ref->eval(row(int_entry('a', 2))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Factory/NativeEntryFactoryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Factory/NativeEntryFactoryTest.php index 41e174057..c588a15da 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Factory/NativeEntryFactoryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Factory/NativeEntryFactoryTest.php @@ -25,13 +25,10 @@ enum_entry, type_string, uuid_entry, xml_entry}; +use function Flow\ETL\DSL\{bool_schema, date_schema, datetime_schema, enum_schema, float_schema, integer_schema, json_schema, list_schema, schema, string_schema, structure_entry, time_schema, type_integer, type_structure, uuid_schema, xml_schema}; use Flow\ETL\Exception\{CastingException, SchemaDefinitionNotFoundException}; -use Flow\ETL\PHP\Type\Logical\List\ListElement; -use Flow\ETL\PHP\Type\Logical\Structure\StructureElement; -use Flow\ETL\PHP\Type\Logical\{ListType, StructureType}; -use Flow\ETL\Row\Entry\{StructureEntry, TimeEntry}; +use Flow\ETL\Row\Entry\{TimeEntry}; use Flow\ETL\Row\Factory\NativeEntryFactory; -use Flow\ETL\Row\Schema; use Flow\ETL\Tests\Fixtures\Enum\BackedIntEnum; use Flow\ETL\Tests\FlowTestCase; use PHPUnit\Framework\Attributes\DataProvider; @@ -69,11 +66,7 @@ public static function provide_unrecognized_data() : \Generator public function test_array_structure() : void { self::assertEquals( - new StructureEntry( - 'e', - ['a' => 1, 'b' => '2'], - new StructureType([new StructureElement('a', type_int()), new StructureElement('b', type_string())]) - ), + structure_entry('e', ['a' => 1, 'b' => '2'], type_structure([structure_element('a', type_int()), structure_element('b', type_string())])), (new NativeEntryFactory())->create('e', ['a' => 1, 'b' => '2']) ); } @@ -90,7 +83,7 @@ public function test_boolean_with_schema() : void { self::assertEquals( bool_entry('e', false), - (new NativeEntryFactory())->create('e', false, new Schema(Schema\Definition::boolean('e'))) + (new NativeEntryFactory())->create('e', false, schema(bool_schema('e'))) ); } @@ -106,7 +99,7 @@ public function test_date_from_int_with_definition() : void { self::assertEquals( date_entry('e', '1970-01-01'), - (new NativeEntryFactory())->create('e', 1, new Schema(Schema\Definition::date('e'))) + (new NativeEntryFactory())->create('e', 1, schema(date_schema('e'))) ); } @@ -114,7 +107,7 @@ public function test_date_from_null_with_definition() : void { self::assertEquals( date_entry('e', null), - (new NativeEntryFactory())->create('e', null, new Schema(Schema\Definition::date('e', true))) + (new NativeEntryFactory())->create('e', null, schema(date_schema('e', true))) ); } @@ -122,7 +115,7 @@ public function test_date_from_string_with_definition() : void { self::assertEquals( date_entry('e', '2022-01-01'), - (new NativeEntryFactory())->create('e', '2022-01-01', new Schema(Schema\Definition::date('e'))) + (new NativeEntryFactory())->create('e', '2022-01-01', schema(date_schema('e'))) ); } @@ -139,7 +132,7 @@ public function test_datetime_string_with_schema() : void self::assertEquals( datetime_entry('e', '2022-01-01 00:00:00 UTC'), (new NativeEntryFactory()) - ->create('e', '2022-01-01 00:00:00 UTC', new Schema(Schema\Definition::dateTime('e'))) + ->create('e', '2022-01-01 00:00:00 UTC', schema(datetime_schema('e'))) ); } @@ -148,7 +141,7 @@ public function test_datetime_with_schema() : void self::assertEquals( datetime_entry('e', $datetime = new \DateTimeImmutable('now')), (new NativeEntryFactory()) - ->create('e', $datetime, new Schema(Schema\Definition::dateTime('e'))) + ->create('e', $datetime, schema(datetime_schema('e'))) ); } @@ -166,7 +159,7 @@ public function test_enum_from_string_with_schema() : void self::assertEquals( enum_entry('e', BackedIntEnum::one), (new NativeEntryFactory()) - ->create('e', 1, new Schema(Schema\Definition::enum('e', BackedIntEnum::class))) + ->create('e', 1, schema(enum_schema('e', BackedIntEnum::class))) ); } @@ -176,7 +169,7 @@ public function test_enum_invalid_value_with_schema() : void $this->expectExceptionMessage("Can't cast \"string\" into \"enum\" type"); (new NativeEntryFactory()) - ->create('e', 'invalid', new Schema(Schema\Definition::enum('e', BackedIntEnum::class))); + ->create('e', 'invalid', schema(enum_schema('e', BackedIntEnum::class))); } public function test_float() : void @@ -191,7 +184,7 @@ public function test_float_with_schema() : void { self::assertEquals( float_entry('e', 1.1), - (new NativeEntryFactory())->create('e', 1.1, new Schema(Schema\Definition::float('e'))) + (new NativeEntryFactory())->create('e', 1.1, schema(float_schema('e'))) ); } @@ -215,7 +208,7 @@ public function test_integer_with_schema() : void { self::assertEquals( int_entry('e', 1), - (new NativeEntryFactory())->create('e', 1, new Schema(Schema\Definition::integer('e'))) + (new NativeEntryFactory())->create('e', 1, schema(integer_schema('e'))) ); } @@ -231,7 +224,7 @@ public function test_json_object_array_with_schema() : void { self::assertEquals( json_object_entry('e', ['id' => 1]), - (new NativeEntryFactory())->create('e', ['id' => 1], new Schema(Schema\Definition::json('e'))) + (new NativeEntryFactory())->create('e', ['id' => 1], schema(json_schema('e'))) ); } @@ -247,7 +240,7 @@ public function test_json_string_with_schema() : void { self::assertEquals( json_entry('e', '{"id": 1}'), - (new NativeEntryFactory())->create('e', '{"id": 1}', new Schema(Schema\Definition::json('e'))) + (new NativeEntryFactory())->create('e', '{"id": 1}', schema(json_schema('e'))) ); } @@ -255,7 +248,7 @@ public function test_json_with_schema() : void { self::assertEquals( json_entry('e', [['id' => 1]]), - (new NativeEntryFactory())->create('e', [['id' => 1]], new Schema(Schema\Definition::json('e'))) + (new NativeEntryFactory())->create('e', [['id' => 1]], schema(json_schema('e'))) ); } @@ -263,7 +256,7 @@ public function test_list_int_with_schema() : void { self::assertEquals( list_entry('e', [1, 2, 3], type_list(type_int())), - (new NativeEntryFactory())->create('e', [1, 2, 3], new Schema(Schema\Definition::list('e', new ListType(ListElement::integer())))) + (new NativeEntryFactory())->create('e', [1, 2, 3], schema(list_schema('e', type_list(type_integer())))) ); } @@ -271,7 +264,7 @@ public function test_list_int_with_schema_but_string_list() : void { self::assertEquals( list_entry('e', ['false', 'true', 'true'], type_list(type_string())), - (new NativeEntryFactory())->create('e', [false, true, true], new Schema(Schema\Definition::list('e', new ListType(ListElement::string())))) + (new NativeEntryFactory())->create('e', [false, true, true], schema(list_schema('e', type_list(type_string())))) ); } @@ -280,7 +273,7 @@ public function test_list_of_datetime_with_schema() : void self::assertEquals( list_entry('e', $list = [new \DateTimeImmutable('now'), new \DateTimeImmutable('tomorrow')], type_list(type_datetime())), (new NativeEntryFactory()) - ->create('e', $list, new Schema(Schema\Definition::list('e', new ListType(ListElement::datetime())))) + ->create('e', $list, schema(list_schema('e', type_list(type_datetime())))) ); } @@ -303,27 +296,23 @@ public function test_list_of_scalars() : void public function test_nested_structure() : void { self::assertEquals( - new StructureEntry( - 'address', - [ - 'city' => 'Krakow', - 'geo' => [ - 'lat' => 50.06143, - 'lon' => 19.93658, - ], - 'street' => 'Floriańska', - 'zip' => '31-021', + structure_entry('address', [ + 'city' => 'Krakow', + 'geo' => [ + 'lat' => 50.06143, + 'lon' => 19.93658, ], - structure_type([ - structure_element('city', type_string()), - structure_element( - 'geo', - type_map(type_string(), type_float()) - ), - structure_element('street', type_string()), - structure_element('zip', type_string()), - ]), - ), + 'street' => 'Floriańska', + 'zip' => '31-021', + ], structure_type([ + structure_element('city', type_string()), + structure_element( + 'geo', + type_map(type_string(), type_float()) + ), + structure_element('street', type_string()), + structure_element('zip', type_string()), + ])), (new NativeEntryFactory())->create('address', [ 'city' => 'Krakow', 'geo' => [ @@ -355,23 +344,19 @@ public function test_string_with_schema() : void { self::assertEquals( str_entry('e', 'string'), - (new NativeEntryFactory())->create('e', 'string', new Schema(Schema\Definition::string('e'))) + (new NativeEntryFactory())->create('e', 'string', schema(string_schema('e'))) ); } public function test_structure() : void { self::assertEquals( - new StructureEntry( - 'address', - ['id' => 1, 'city' => 'Krakow', 'street' => 'Floriańska', 'zip' => '31-021'], - new StructureType([ - new StructureElement('id', type_int()), - new StructureElement('city', type_string()), - new StructureElement('street', type_string()), - new StructureElement('zip', type_string()), - ]) - ), + structure_entry('address', ['id' => 1, 'city' => 'Krakow', 'street' => 'Floriańska', 'zip' => '31-021'], type_structure([ + structure_element('id', type_int()), + structure_element('city', type_string()), + structure_element('street', type_string()), + structure_element('zip', type_string()), + ])), (new NativeEntryFactory())->create('address', ['id' => 1, 'city' => 'Krakow', 'street' => 'Floriańska', 'zip' => '31-021']) ); } @@ -388,7 +373,7 @@ public function test_time_from_null_with_definition() : void { self::assertEquals( time_entry('e', null), - (new NativeEntryFactory())->create('e', null, new Schema(Schema\Definition::time('e', true))) + (new NativeEntryFactory())->create('e', null, schema(time_schema('e', true))) ); } @@ -396,7 +381,7 @@ public function test_time_from_string_with_definition() : void { self::assertEquals( time_entry('e', new \DateInterval('P10D')), - (new NativeEntryFactory())->create('e', 'P10D', new Schema(Schema\Definition::time('e'))) + (new NativeEntryFactory())->create('e', 'P10D', schema(time_schema('e'))) ); } @@ -433,7 +418,7 @@ public function test_uuid_string_with_uuid_definition_provided() : void { self::assertEquals( uuid_entry('e', $uuid = '00000000-0000-0000-0000-000000000000'), - (new NativeEntryFactory())->create('e', $uuid, new Schema(Schema\Definition::uuid('e'))) + (new NativeEntryFactory())->create('e', $uuid, schema(uuid_schema('e'))) ); } @@ -442,7 +427,7 @@ public function test_with_empty_schema() : void $this->expectException(SchemaDefinitionNotFoundException::class); (new NativeEntryFactory()) - ->create('e', '1', new Schema()); + ->create('e', '1', schema()); } public function test_with_schema_for_different_entry() : void @@ -450,7 +435,7 @@ public function test_with_schema_for_different_entry() : void $this->expectException(SchemaDefinitionNotFoundException::class); (new NativeEntryFactory()) - ->create('diff', '1', new Schema(Schema\Definition::string('e'))); + ->create('diff', '1', schema(string_schema('e'))); } public function test_xml_from_dom_document() : void @@ -475,7 +460,7 @@ public function test_xml_string_with_xml_definition_provided() : void { self::assertEquals( xml_entry('e', $xml = '123'), - (new NativeEntryFactory())->create('e', $xml, new Schema(Schema\Definition::xml('e'))) + (new NativeEntryFactory())->create('e', $xml, schema(xml_schema('e'))) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/DefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/DefinitionTest.php index 9c9df29a0..a69a2dde7 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/DefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/DefinitionTest.php @@ -4,6 +4,7 @@ namespace Flow\ETL\Tests\Unit\Row\Schema; +use function Flow\ETL\DSL\{bool_schema, date_schema, float_schema, integer_schema, json_schema, list_schema, map_schema, string_schema, structure_schema, time_schema, type_integer}; use function Flow\ETL\DSL\{datetime_schema, int_entry, str_entry, @@ -19,8 +20,6 @@ type_string, type_structure}; use Flow\ETL\Exception\{InvalidArgumentException, RuntimeException}; -use Flow\ETL\PHP\Type\Logical\List\ListElement; -use Flow\ETL\PHP\Type\Logical\{ListType, StructureType}; use Flow\ETL\Row\Schema\{Definition, Metadata}; use Flow\ETL\Tests\FlowTestCase; @@ -36,34 +35,34 @@ public function test_creating_definition_without_class() : void public function test_equals_nullability() : void { - $def = Definition::integer('id', nullable: true); + $def = integer_schema('id', nullable: true); self::assertFalse( $def->isEqual( - Definition::integer('id', nullable: false) + integer_schema('id', nullable: false) ) ); self::assertTrue( $def->isEqual( - Definition::integer('id', nullable: true) + integer_schema('id', nullable: true) ) ); } public function test_equals_types() : void { - $def = Definition::list('list', new ListType(ListElement::integer())); + $def = list_schema('list', type_list(type_integer())); self::assertTrue( $def->isEqual( - Definition::list('list', new ListType(ListElement::integer())) + list_schema('list', type_list(type_integer())) ) ); } public function test_matches_when_type_and_name_match() : void { - $def = Definition::integer('test'); + $def = integer_schema('test'); self::assertTrue($def->matches(int_entry('test', 1))); } @@ -71,8 +70,8 @@ public function test_matches_when_type_and_name_match() : void public function test_merge_definitions() : void { self::assertEquals( - Definition::integer('id', true), - Definition::integer('id')->merge(Definition::integer('id', true)) + integer_schema('id', true), + integer_schema('id')->merge(integer_schema('id', true)) ); } @@ -92,48 +91,48 @@ public function test_merge_nullable_with_non_nullable_dateime_definitions() : vo public function test_merging_anything_and_assumed_string() : void { self::assertEquals( - Definition::integer('id', true), - Definition::integer('id', false)->merge(Definition::string('id', true, Metadata::fromArray([Metadata::FROM_NULL => true]))) + integer_schema('id', true), + integer_schema('id', false)->merge(string_schema('id', true, Metadata::fromArray([Metadata::FROM_NULL => true]))) ); self::assertEquals( - Definition::float('id', true), - Definition::float('id', false)->merge(Definition::string('id', true, Metadata::fromArray([Metadata::FROM_NULL => true]))) + float_schema('id', true), + float_schema('id', false)->merge(string_schema('id', true, Metadata::fromArray([Metadata::FROM_NULL => true]))) ); self::assertEquals( - Definition::boolean('id', true), - Definition::boolean('id', false)->merge(Definition::string('id', true, Metadata::fromArray([Metadata::FROM_NULL => true]))) + bool_schema('id', true), + bool_schema('id', false)->merge(string_schema('id', true, Metadata::fromArray([Metadata::FROM_NULL => true]))) ); self::assertEquals( - Definition::dateTime('id', true), - Definition::dateTime('id', false)->merge(Definition::string('id', true, Metadata::fromArray([Metadata::FROM_NULL => true]))) + datetime_schema('id', true), + datetime_schema('id', false)->merge(string_schema('id', true, Metadata::fromArray([Metadata::FROM_NULL => true]))) ); } public function test_merging_anything_and_string() : void { self::assertEquals( - Definition::string('id', true), - Definition::integer('id', false)->merge(Definition::string('id', true)) + string_schema('id', true), + integer_schema('id', false)->merge(string_schema('id', true)) ); self::assertEquals( - Definition::string('id', true), - Definition::float('id', false)->merge(Definition::string('id', true)) + string_schema('id', true), + float_schema('id', false)->merge(string_schema('id', true)) ); self::assertEquals( - Definition::string('id', true), - Definition::boolean('id', false)->merge(Definition::string('id', true)) + string_schema('id', true), + bool_schema('id', false)->merge(string_schema('id', true)) ); self::assertEquals( - Definition::string('id', true), - Definition::dateTime('id', false)->merge(Definition::string('id', true)) + string_schema('id', true), + datetime_schema('id', false)->merge(string_schema('id', true)) ); } public function test_merging_date_with_datetime() : void { self::assertEquals( - Definition::datetime('datetime'), - Definition::datetime('datetime')->merge(Definition::date('datetime')) + datetime_schema('datetime'), + datetime_schema('datetime')->merge(date_schema('datetime')) ); } @@ -142,79 +141,73 @@ public function test_merging_different_entries() : void $this->expectException(RuntimeException::class); $this->expectExceptionMessage('Cannot merge different definitions, int and string'); - Definition::integer('int')->merge(Definition::string('string')); + integer_schema('int')->merge(string_schema('string')); } public function test_merging_list_of_ints_and_floats() : void { self::assertEquals( - Definition::list('list', type_list(type_float())), - Definition::list('list', type_list(type_int()))->merge(Definition::list('list', type_list(type_float()))) + list_schema('list', type_list(type_float())), + list_schema('list', type_list(type_int()))->merge(list_schema('list', type_list(type_float()))) ); } public function test_merging_numeric_types() : void { self::assertEquals( - Definition::float('id', true), - Definition::integer('id', false)->merge(Definition::float('id', true)) + float_schema('id', true), + integer_schema('id', false)->merge(float_schema('id', true)) ); self::assertEquals( - Definition::float('id', true), - Definition::float('id', false)->merge(Definition::integer('id', true)) + float_schema('id', true), + float_schema('id', false)->merge(integer_schema('id', true)) ); } public function test_merging_time_with_date() : void { self::assertEquals( - Definition::datetime('datetime'), - Definition::date('datetime')->merge(Definition::time('datetime')) + datetime_schema('datetime'), + date_schema('datetime')->merge(time_schema('datetime')) ); } public function test_merging_time_with_datetime() : void { self::assertEquals( - Definition::datetime('datetime'), - Definition::datetime('datetime')->merge(Definition::time('datetime')) + datetime_schema('datetime'), + datetime_schema('datetime')->merge(time_schema('datetime')) ); } public function test_merging_two_different_lists() : void { self::assertEquals( - Definition::json('list'), - Definition::list('list', type_list(type_string()))->merge(Definition::list('list', type_list(type_int()))) + json_schema('list'), + list_schema('list', type_list(type_string()))->merge(list_schema('list', type_list(type_int()))) ); } public function test_merging_two_different_maps() : void { self::assertEquals( - Definition::json('map'), - Definition::map('map', type_map(type_string(), type_string()))->merge(Definition::map('map', type_map(type_string(), type_int()))) + json_schema('map'), + map_schema('map', type_map(type_string(), type_string()))->merge(map_schema('map', type_map(type_string(), type_int()))) ); } public function test_merging_two_different_structures() : void { self::assertEquals( - Definition::json('structure'), - Definition::structure( - 'structure', - struct_type([ + json_schema('structure'), + structure_schema('structure', struct_type([ + struct_element('street', type_string()), + struct_element('city', type_string()), + ]))->merge( + structure_schema('structure', struct_type([ struct_element('street', type_string()), - struct_element('city', type_string()), - ]) - )->merge( - Definition::structure( - 'structure', - struct_type([ - struct_element('street', type_string()), - struct_element('city', type_int()), - ]) - ) + struct_element('city', type_int()), + ])) ) ); } @@ -222,16 +215,16 @@ public function test_merging_two_different_structures() : void public function test_merging_two_same_lists() : void { self::assertEquals( - Definition::list('list', type_list(type_int())), - Definition::list('list', type_list(type_int()))->merge(Definition::list('list', type_list(type_int()))) + list_schema('list', type_list(type_int())), + list_schema('list', type_list(type_int()))->merge(list_schema('list', type_list(type_int()))) ); } public function test_merging_two_same_maps() : void { self::assertEquals( - Definition::map('map', type_map(type_string(), type_string())), - Definition::map('map', type_map(type_string(), type_string()))->merge(Definition::map('map', type_map(type_string(), type_string()))) + map_schema('map', type_map(type_string(), type_string())), + map_schema('map', type_map(type_string(), type_string()))->merge(map_schema('map', type_map(type_string(), type_string()))) ); } @@ -262,21 +255,21 @@ public function test_normalize_and_from_array() : void public function test_not_matches_when_not_nullable_name_matches_but_null_given() : void { - $def = Definition::integer('test', $nullable = false); + $def = integer_schema('test', $nullable = false); self::assertFalse($def->matches(str_entry('test', null))); } public function test_not_matches_when_type_does_not_match() : void { - $def = Definition::integer('test'); + $def = integer_schema('test'); self::assertFalse($def->matches(str_entry('test', 'test'))); } public function test_not_matches_when_type_name_not_match() : void { - $def = Definition::integer('test'); + $def = integer_schema('test'); self::assertFalse($def->matches(int_entry('not-test', 1))); } @@ -304,12 +297,12 @@ public function test_structure_definition_metadata() : void ); self::assertEquals( - new StructureType([ + type_structure([ struct_element('street', type_string()), struct_element('city', type_string()), struct_element( 'location', - new StructureType([ + type_structure([ struct_element('lat', type_float()), struct_element('lng', type_float()), ]) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/Formatter/ASCIISchemaFormatterTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/Formatter/ASCIISchemaFormatterTest.php index 540db066b..3c1c89336 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/Formatter/ASCIISchemaFormatterTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/Formatter/ASCIISchemaFormatterTest.php @@ -4,12 +4,8 @@ namespace Flow\ETL\Tests\Unit\Row\Schema\Formatter; +use function Flow\ETL\DSL\{bool_schema, datetime_schema, integer_schema, json_schema, list_schema, map_schema, schema, string_schema, structure_element, structure_schema, type_integer, type_map, type_structure, uuid_schema, xml_element_schema, xml_schema}; use function Flow\ETL\DSL\{type_int, type_list, type_string}; -use Flow\ETL\PHP\Type\Logical\List\ListElement; -use Flow\ETL\PHP\Type\Logical\Map\{MapKey, MapValue}; -use Flow\ETL\PHP\Type\Logical\Structure\StructureElement; -use Flow\ETL\PHP\Type\Logical\{ListType, MapType, StructureType}; -use Flow\ETL\Row\Schema; use Flow\ETL\Row\Schema\Formatter\ASCIISchemaFormatter; use Flow\ETL\Tests\FlowTestCase; @@ -17,33 +13,15 @@ final class ASCIISchemaFormatterTest extends FlowTestCase { public function test_format_nested_schema() : void { - $schema = new Schema( - Schema\Definition::integer('integer', true), - Schema\Definition::integer('float'), - Schema\Definition::structure( - 'user', - new StructureType([ - new StructureElement('name', type_string(true)), - new StructureElement('age', type_int()), - new StructureElement( - 'address', - new StructureType([ - new StructureElement('street', type_string(true)), - new StructureElement('city', type_string(true)), - new StructureElement('country', type_string(true)), - ]) - ), - ]), - ), - Schema\Definition::string('name', nullable: true), - Schema\Definition::list('tags', type_list(type_string())), - Schema\Definition::boolean('active'), - Schema\Definition::xml('xml'), - Schema\Definition::xml_element('xml_element'), - Schema\Definition::json('json'), - Schema\Definition::uuid('uuid'), - Schema\Definition::dateTime('datetime'), - ); + $schema = schema(integer_schema('integer', true), integer_schema('float'), structure_schema('user', type_structure([ + structure_element('name', type_string(true)), + structure_element('age', type_int()), + structure_element('address', type_structure([ + structure_element('street', type_string(true)), + structure_element('city', type_string(true)), + structure_element('country', type_string(true)), + ])), + ])), string_schema('name', nullable: true), list_schema('tags', type_list(type_string())), bool_schema('active'), xml_schema('xml'), xml_element_schema('xml_element'), json_schema('json'), uuid_schema('uuid'), datetime_schema('datetime')); self::assertSame( <<<'SCHEMA' @@ -73,14 +51,7 @@ public function test_format_nested_schema() : void public function test_format_schema() : void { - $schema = new Schema( - Schema\Definition::string('name', nullable: true), - Schema\Definition::list('tags', type_list(type_string())), - Schema\Definition::boolean('active'), - Schema\Definition::xml('xml'), - Schema\Definition::map('map', new MapType(MapKey::string(), MapValue::string())), - Schema\Definition::list('list', new ListType(ListElement::map(new MapType(MapKey::string(), MapValue::integer())))) - ); + $schema = schema(string_schema('name', nullable: true), list_schema('tags', type_list(type_string())), bool_schema('active'), xml_schema('xml'), map_schema('map', type_map(type_string(), type_string())), list_schema('list', type_list(type_map(type_string(), type_integer())))); self::assertSame( <<<'SCHEMA' diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/SelectiveValidatorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/SelectiveValidatorTest.php index 8992e4879..9663f56fc 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/SelectiveValidatorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/SelectiveValidatorTest.php @@ -5,22 +5,20 @@ namespace Flow\ETL\Tests\Unit\Row\Schema; use function Flow\ETL\DSL\{bool_entry, int_entry, str_entry}; -use Flow\ETL\Row\Schema; +use function Flow\ETL\DSL\{bool_schema, integer_schema, schema, string_schema}; +use function Flow\ETL\DSL\{row, rows}; use Flow\ETL\Row\Schema\SelectiveValidator; -use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class SelectiveValidatorTest extends FlowTestCase { public function test_rows_with_a_missing_entry() : void { - $schema = new Schema( - Schema\Definition::integer('id'), - Schema\Definition::string('name'), - ); + $schema = schema(integer_schema('id'), string_schema('name')); self::assertFalse( (new SelectiveValidator())->isValid( - new Rows(Row::create(int_entry('id', 1), bool_entry('active', true))), + rows(row(int_entry('id', 1), bool_entry('active', true))), $schema ) ); @@ -28,14 +26,11 @@ public function test_rows_with_a_missing_entry() : void public function test_rows_with_an_extra_entry() : void { - $schema = new Schema( - Schema\Definition::integer('id'), - Schema\Definition::string('name'), - ); + $schema = schema(integer_schema('id'), string_schema('name')); self::assertTrue( (new SelectiveValidator())->isValid( - new Rows(Row::create(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true))), + rows(row(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true))), $schema ) ); @@ -43,15 +38,11 @@ public function test_rows_with_an_extra_entry() : void public function test_rows_with_single_invalid_entry() : void { - $schema = new Schema( - Schema\Definition::integer('id'), - Schema\Definition::boolean('name'), - Schema\Definition::boolean('active'), - ); + $schema = schema(integer_schema('id'), bool_schema('name'), bool_schema('active')); self::assertFalse( (new SelectiveValidator())->isValid( - new Rows(Row::create(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true))), + rows(row(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true))), $schema ) ); @@ -59,17 +50,11 @@ public function test_rows_with_single_invalid_entry() : void public function test_rows_with_single_invalid_row() : void { - $schema = new Schema( - Schema\Definition::string('name'), - Schema\Definition::boolean('active'), - ); + $schema = schema(string_schema('name'), bool_schema('active')); self::assertFalse( (new SelectiveValidator())->isValid( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true)), - Row::create(int_entry('id', 1), bool_entry('active', true)) - ), + rows(row(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true)), row(int_entry('id', 1), bool_entry('active', true))), $schema ) ); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/StrictValidatorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/StrictValidatorTest.php index 1cbdd42aa..41e8295ef 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/StrictValidatorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/Schema/StrictValidatorTest.php @@ -5,22 +5,20 @@ namespace Flow\ETL\Tests\Unit\Row\Schema; use function Flow\ETL\DSL\{bool_entry, int_entry, str_entry, type_list, type_string}; -use Flow\ETL\Row\Schema; +use function Flow\ETL\DSL\{bool_schema, integer_schema, list_schema, schema, string_schema}; +use function Flow\ETL\DSL\{row, rows}; use Flow\ETL\Row\Schema\StrictValidator; -use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class StrictValidatorTest extends FlowTestCase { public function test_rows_with_a_missing_entry() : void { - $schema = new Schema( - Schema\Definition::integer('id'), - Schema\Definition::string('name'), - ); + $schema = schema(integer_schema('id'), string_schema('name')); self::assertFalse( (new StrictValidator())->isValid( - new Rows(Row::create(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true))), + rows(row(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true))), $schema ) ); @@ -28,15 +26,11 @@ public function test_rows_with_a_missing_entry() : void public function test_rows_with_all_entries_valid() : void { - $schema = new Schema( - Schema\Definition::integer('id'), - Schema\Definition::string('name'), - Schema\Definition::boolean('active'), - ); + $schema = schema(integer_schema('id'), string_schema('name'), bool_schema('active')); self::assertTrue( (new StrictValidator())->isValid( - new Rows(Row::create(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true))), + rows(row(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true))), $schema ) ); @@ -44,16 +38,11 @@ public function test_rows_with_all_entries_valid() : void public function test_rows_with_an_extra_entry() : void { - $schema = new Schema( - Schema\Definition::integer('id'), - Schema\Definition::string('name'), - Schema\Definition::boolean('active'), - Schema\Definition::list('tags', type_list(type_string())), - ); + $schema = schema(integer_schema('id'), string_schema('name'), bool_schema('active'), list_schema('tags', type_list(type_string()))); self::assertFalse( (new StrictValidator())->isValid( - new Rows(Row::create(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true))), + rows(row(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true))), $schema ) ); @@ -61,15 +50,11 @@ public function test_rows_with_an_extra_entry() : void public function test_rows_with_single_invalid_entry() : void { - $schema = new Schema( - Schema\Definition::integer('id'), - Schema\Definition::boolean('name'), - Schema\Definition::boolean('active'), - ); + $schema = schema(integer_schema('id'), bool_schema('name'), bool_schema('active')); self::assertFalse( (new StrictValidator())->isValid( - new Rows(Row::create(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true))), + rows(row(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true))), $schema ) ); @@ -77,18 +62,11 @@ public function test_rows_with_single_invalid_entry() : void public function test_rows_with_single_invalid_row() : void { - $schema = new Schema( - Schema\Definition::integer('id'), - Schema\Definition::string('name'), - Schema\Definition::boolean('active'), - ); + $schema = schema(integer_schema('id'), string_schema('name'), bool_schema('active')); self::assertFalse( (new StrictValidator())->isValid( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true)), - Row::create(int_entry('id', 1), bool_entry('active', true)) - ), + rows(row(int_entry('id', 1), str_entry('name', 'test'), bool_entry('active', true)), row(int_entry('id', 1), bool_entry('active', true))), $schema ) ); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/SchemaTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/SchemaTest.php index 9dbc489fe..72531008d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/SchemaTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Row/SchemaTest.php @@ -24,6 +24,7 @@ type_string, type_structure, uuid_schema}; +use function Flow\ETL\DSL\{integer_schema, string_schema}; use Flow\ETL\Exception\{InvalidArgumentException, SchemaDefinitionNotFoundException, SchemaDefinitionNotUniqueException}; use Flow\ETL\Row\{EntryReference, Schema}; use Flow\ETL\Tests\FlowTestCase; @@ -61,18 +62,12 @@ public function test_allowing_only_unique_definitions() : void { $this->expectException(SchemaDefinitionNotUniqueException::class); - new Schema( - Schema\Definition::integer('id'), - Schema\Definition::string('id') - ); + schema(integer_schema('id'), string_schema('id')); } public function test_allowing_only_unique_definitions_case_insensitive() : void { - $schema = new Schema( - Schema\Definition::integer('id'), - Schema\Definition::integer('Id') - ); + $schema = schema(integer_schema('id'), integer_schema('Id')); self::assertEquals(refs(EntryReference::init('id'), EntryReference::init('Id')), $schema->references()); } @@ -148,16 +143,10 @@ public function test_keep_selected_entries() : void public function test_making_whole_schema_nullable() : void { - $schema = new Schema( - Schema\Definition::integer('id', $nullable = false), - Schema\Definition::string('name', $nullable = true) - ); + $schema = schema(integer_schema('id', $nullable = false), string_schema('name', $nullable = true)); self::assertEquals( - new Schema( - Schema\Definition::integer('id', $nullable = true), - Schema\Definition::string('name', $nullable = true) - ), + schema(integer_schema('id', $nullable = true), string_schema('name', $nullable = true)), $schema->makeNullable() ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/RowTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/RowTest.php index 7bf467b63..69800df69 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/RowTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/RowTest.php @@ -22,19 +22,10 @@ type_list, type_map, type_string}; -use Flow\ETL\PHP\Type\Logical\List\ListElement; -use Flow\ETL\PHP\Type\Logical\Map\{MapKey, MapValue}; -use Flow\ETL\PHP\Type\Logical\Structure\StructureElement; -use Flow\ETL\PHP\Type\Logical\{ListType, MapType, StructureType}; +use function Flow\ETL\DSL\{bool_schema, boolean_entry, datetime_schema, float_schema, integer_entry, integer_schema, json_schema, list_schema, map_schema, schema, string_schema, structure_element, structure_entry, structure_schema, type_integer, type_structure}; use Flow\ETL\Row\Entry\{ - BooleanEntry, - DateTimeEntry, - IntegerEntry, - JsonEntry, - MapEntry, - StructureEntry}; -use Flow\ETL\Row\Schema; -use Flow\ETL\Row\Schema\Definition; + DateTimeEntry +}; use Flow\ETL\Tests\FlowTestCase; use PHPUnit\Framework\Attributes\DataProvider; @@ -44,56 +35,40 @@ public static function is_equal_data_provider() : \Generator { yield 'equal simple same integer entries' => [ true, - row(new IntegerEntry('1', 1), new IntegerEntry('2', 2), new IntegerEntry('3', 3)), - row(new IntegerEntry('1', 1), new IntegerEntry('2', 2), new IntegerEntry('3', 3)), + row(integer_entry('1', 1), integer_entry('2', 2), integer_entry('3', 3)), + row(integer_entry('1', 1), integer_entry('2', 2), integer_entry('3', 3)), ]; yield 'same integer entries with different number of entries' => [ false, - row(new IntegerEntry('1', 1), new IntegerEntry('2', 2), new IntegerEntry('3', 3)), - row(new IntegerEntry('1', 1), new IntegerEntry('2', 2)), + row(integer_entry('1', 1), integer_entry('2', 2), integer_entry('3', 3)), + row(integer_entry('1', 1), integer_entry('2', 2)), ]; yield 'simple same integer entries with different number of entries reversed' => [ false, - row(new IntegerEntry('1', 1), new IntegerEntry('2', 2)), - row(new IntegerEntry('1', 1), new IntegerEntry('2', 2), new IntegerEntry('3', 3)), + row(integer_entry('1', 1), integer_entry('2', 2)), + row(integer_entry('1', 1), integer_entry('2', 2), integer_entry('3', 3)), ]; yield 'simple same array entries' => [ true, - row(new JsonEntry('json', ['foo' => ['bar' => 'baz']])), - row(new JsonEntry('json', ['foo' => ['bar' => 'baz']])), + row(json_entry('json', ['foo' => ['bar' => 'baz']])), + row(json_entry('json', ['foo' => ['bar' => 'baz']])), ]; yield 'simple same collection entries' => [ true, row( - new StructureEntry( - 'json', - ['json' => [1, 2, 3]], - new StructureType([new StructureElement('json', new ListType(ListElement::integer()))]) - ) + structure_entry('json', ['json' => [1, 2, 3]], type_structure([structure_element('json', type_list(type_integer()))])) ), row( - new StructureEntry( - 'json', - ['json' => [1, 2, 3]], - new StructureType([new StructureElement('json', new ListType(ListElement::integer()))]) - ) + structure_entry('json', ['json' => [1, 2, 3]], type_structure([structure_element('json', type_list(type_integer()))])) ), ]; yield 'simple different collection entries' => [ false, row( - new StructureEntry( - 'json', - ['json' => ['5', '2', '1']], - new StructureType([new StructureElement('json', new ListType(ListElement::string()))]) - ) + structure_entry('json', ['json' => ['5', '2', '1']], type_structure([structure_element('json', type_list(type_string()))])) ), row( - new StructureEntry( - 'json', - ['json' => ['1', '2', '3']], - new StructureType([new StructureElement('json', new ListType(ListElement::string()))]) - ) + structure_entry('json', ['json' => ['1', '2', '3']], type_structure([structure_element('json', type_list(type_string()))])) ), ]; } @@ -130,26 +105,10 @@ public function test_getting_schema_from_row() : void ); self::assertEquals( - new Schema( - Definition::integer('id'), - Definition::float('price'), - Definition::boolean('deleted'), - Definition::dateTime('created-at'), - Definition::string('phase', nullable: true), - Definition::json('array'), - Definition::structure( - 'items', - new StructureType([ - new StructureElement('item-id', type_int()), - new StructureElement('name', type_string()), - ]) - ), - Definition::map( - 'statuses', - new MapType(MapKey::integer(), MapValue::string()) - ), - Definition::list('list', new ListType(ListElement::integer())), - ), + schema(integer_schema('id'), float_schema('price'), bool_schema('deleted'), datetime_schema('created-at'), string_schema('phase', nullable: true), json_schema('array'), structure_schema('items', type_structure([ + structure_element('item-id', type_int()), + structure_element('name', type_string()), + ])), map_schema('statuses', type_map(type_integer(), type_string())), list_schema('list', type_list(type_integer()))), $row->schema() ); } @@ -236,8 +195,8 @@ public function test_merge_row_with_another_row_using_prefix() : void 'id' => 1, '_id' => 2, ], - row(new IntegerEntry('id', 1)) - ->merge(row(new IntegerEntry('id', 2)), $prefix = '_') + row(integer_entry('id', 1)) + ->merge(row(integer_entry('id', 2)), $prefix = '_') ->toArray() ); } @@ -281,13 +240,13 @@ public function test_renames_entry() : void { $row = row( string_entry('name', 'just a string'), - new BooleanEntry('active', true) + boolean_entry('active', true) ); $newRow = $row->rename('name', 'new-name'); self::assertEquals( row( - new BooleanEntry('active', true), + boolean_entry('active', true), string_entry('new-name', 'just a string') ), $newRow @@ -297,20 +256,12 @@ public function test_renames_entry() : void public function test_transforms_row_to_array() : void { $row = row( - new IntegerEntry('id', 1234), - new BooleanEntry('deleted', false), + integer_entry('id', 1234), + boolean_entry('deleted', false), new DateTimeEntry('created-at', $createdAt = new \DateTimeImmutable('2020-07-13 15:00')), string_entry('phase', null), - new StructureEntry( - 'items', - ['item-id' => 1, 'name' => 'one'], - new StructureType([new StructureElement('id', type_int()), new StructureElement('name', type_string())]) - ), - new MapEntry( - 'statuses', - ['NEW', 'PENDING'], - new MapType(MapKey::integer(), MapValue::string()) - ) + structure_entry('items', ['item-id' => 1, 'name' => 'one'], type_structure([structure_element('id', type_int()), structure_element('name', type_string())])), + map_entry('statuses', ['NEW', 'PENDING'], type_map(type_integer(), type_string())) ); self::assertEquals( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Rows/ArrayToRowsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Rows/ArrayToRowsTest.php index 6ccea3c14..cfadb32e6 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Rows/ArrayToRowsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Rows/ArrayToRowsTest.php @@ -4,6 +4,7 @@ namespace Flow\ETL\Tests\Unit\Rows; +use function Flow\ETL\DSL\schema; use function Flow\ETL\DSL\{array_to_rows, bool_entry, bool_schema, @@ -17,7 +18,6 @@ str_schema, type_list, type_string}; -use Flow\ETL\Row\Schema; use Flow\ETL\Tests\FlowTestCase; final class ArrayToRowsTest extends FlowTestCase @@ -66,10 +66,7 @@ public function test_building_row_from_array_with_schema_and_additional_fields_n { $rows = array_to_rows( ['id' => 1234, 'deleted' => false, 'phase' => null], - schema: new Schema( - int_schema('id'), - bool_schema('deleted'), - ) + schema: schema(int_schema('id'), bool_schema('deleted')) ); self::assertEquals( @@ -87,11 +84,7 @@ public function test_building_row_from_array_with_schema_but_entries_not_availab { $rows = array_to_rows( ['id' => 1234, 'deleted' => false], - schema: new Schema( - int_schema('id'), - bool_schema('deleted'), - str_schema('phase', true), - ) + schema: schema(int_schema('id'), bool_schema('deleted'), str_schema('phase', true)) ); self::assertEquals( @@ -139,10 +132,7 @@ public function test_building_rows_from_array_with_schema_and_additional_fields_ ['id' => 1234, 'deleted' => false, 'phase' => null], ['id' => 4321, 'deleted' => true, 'phase' => 'launch'], ], - schema: new Schema( - int_schema('id'), - bool_schema('deleted'), - ) + schema: schema(int_schema('id'), bool_schema('deleted')) ); self::assertEquals( @@ -167,11 +157,7 @@ public function test_building_rows_from_array_with_schema_but_entries_not_availa ['id' => 1234, 'deleted' => false], ['id' => 4321, 'deleted' => true], ], - schema: new Schema( - int_schema('id'), - bool_schema('deleted'), - str_schema('phase', true), - ) + schema: schema(int_schema('id'), bool_schema('deleted'), str_schema('phase', true)) ); self::assertEquals( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/RowsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/RowsTest.php index bebdd6047..b928beb1b 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/RowsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/RowsTest.php @@ -4,6 +4,7 @@ namespace Flow\ETL\Tests\Unit; +use function Flow\ETL\DSL\schema; use function Flow\ETL\DSL\{bool_entry, datetime_entry, int_entry, @@ -17,14 +18,12 @@ type_int, type_list, type_string}; +use function Flow\ETL\DSL\{boolean_entry, integer_schema, json_schema, list_schema, string_schema, type_integer}; use function Flow\Filesystem\DSL\{partition, partitions}; use Flow\ETL\Exception\{InvalidArgumentException, RuntimeException}; -use Flow\ETL\PHP\Type\Logical\List\ListElement; -use Flow\ETL\PHP\Type\Logical\ListType; use Flow\ETL\Row\Comparator\{NativeComparator}; -use Flow\ETL\Row\Entry\{BooleanEntry, DateTimeEntry}; -use Flow\ETL\Row\Schema\Definition; -use Flow\ETL\Row\{Comparator, Schema}; +use Flow\ETL\Row\Entry\{DateTimeEntry}; +use Flow\ETL\Row\{Comparator}; use Flow\ETL\{Row, Rows, Tests\FlowTestCase}; use PHPUnit\Framework\Attributes\DataProvider; @@ -823,12 +822,7 @@ public function test_rows_schema() : void ); self::assertEquals( - new Schema( - Definition::integer('id'), - Definition::string('name', true), - Definition::list('tags', new ListType(ListElement::string(), true)), - Definition::list('list', new ListType(ListElement::integer(), true)) - ), + schema(integer_schema('id'), string_schema('name', true), list_schema('tags', type_list(type_string(), true)), list_schema('list', type_list(type_integer(), true))), $rows->schema() ); } @@ -841,7 +835,7 @@ public function test_rows_schema_when_rows_have_different_list_types() : void ); self::assertEquals( - new Schema(Definition::json('list')), + schema(json_schema('list')), $rows->schema() ); } @@ -955,12 +949,12 @@ public function test_sorts_entries_in_all_rows() : void $rows = rows( row( $rowOneId = int_entry('id', 1), - $rowOneDeleted = new BooleanEntry('deleted', true), + $rowOneDeleted = boolean_entry('deleted', true), $rowOnePhase = string_entry('phase', null), $rowOneCreatedAt = new DateTimeEntry('created-at', new \DateTimeImmutable('2020-08-13 15:00')), ), row( - $rowTwoDeleted = new BooleanEntry('deleted', true), + $rowTwoDeleted = boolean_entry('deleted', true), $rowTwoCreatedAt = new DateTimeEntry('created-at', new \DateTimeImmutable('2020-08-13 15:00')), $rowTwoId = int_entry('id', 1), $rowTwoPhase = string_entry('phase', null), @@ -973,13 +967,13 @@ public function test_sorts_entries_in_all_rows() : void rows( row( $rowOneCreatedAt = new DateTimeEntry('created-at', new \DateTimeImmutable('2020-08-13 15:00')), - $rowOneDeleted = new BooleanEntry('deleted', true), + $rowOneDeleted = boolean_entry('deleted', true), $rowOneId = int_entry('id', 1), $rowOnePhase = string_entry('phase', null), ), row( $rowTwoCreatedAt = new DateTimeEntry('created-at', new \DateTimeImmutable('2020-08-13 15:00')), - $rowTwoDeleted = new BooleanEntry('deleted', true), + $rowTwoDeleted = boolean_entry('deleted', true), $rowTwoId = int_entry('id', 1), $rowTwoPhase = string_entry('phase', null), ) @@ -1085,12 +1079,12 @@ public function test_transforms_rows_to_array() : void $rows = rows( row( int_entry('id', 1234), - new BooleanEntry('deleted', false), + boolean_entry('deleted', false), string_entry('phase', null), ), row( int_entry('id', 4321), - new BooleanEntry('deleted', true), + boolean_entry('deleted', true), string_entry('phase', 'launch'), ) ); @@ -1109,12 +1103,12 @@ public function test_transforms_rows_to_array_without_keys() : void $rows = rows( row( int_entry('id', 1234), - new BooleanEntry('deleted', false), + boolean_entry('deleted', false), string_entry('phase', null), ), row( int_entry('id', 4321), - new BooleanEntry('deleted', true), + boolean_entry('deleted', true), string_entry('phase', 'launch'), ) ); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/CallbackRowTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/CallbackRowTransformerTest.php index aff271f41..e5c2dc4b1 100755 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/CallbackRowTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/CallbackRowTransformerTest.php @@ -4,10 +4,10 @@ namespace Flow\ETL\Tests\Unit\Transformer; -use function Flow\ETL\DSL\string_entry; -use Flow\ETL\Row\Entry; +use function Flow\ETL\DSL\{config, rows}; +use function Flow\ETL\DSL\{flow_context, integer_entry, string_entry}; use Flow\ETL\Transformer\CallbackRowTransformer; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Row, Tests\FlowTestCase}; class CallbackRowTransformerTest extends FlowTestCase { @@ -18,19 +18,10 @@ public function test_replacing_dashes_in_entry_name_with_str_replace_callback() ); $rows = $callbackTransformer->transform( - new Rows( - Row::create( - new Entry\IntegerEntry('old-int', 1000), - string_entry('string-entry ', 'String entry') - ) - ), - new FlowContext(Config::default()) + rows(\Flow\ETL\DSL\row(integer_entry('old-int', 1000), string_entry('string-entry ', 'String entry'))), + flow_context(config()) ); - static::assertEquals(new Rows( - Row::create( - string_entry('string-entry ', 'String entry') - ) - ), $rows); + static::assertEquals(rows(\Flow\ETL\DSL\row(string_entry('string-entry ', 'String entry'))), $rows); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropDuplicatesTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropDuplicatesTransformerTest.php index 1505780cd..69f8f26a2 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropDuplicatesTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropDuplicatesTransformerTest.php @@ -4,10 +4,11 @@ namespace Flow\ETL\Tests\Unit\Transformer; +use function Flow\ETL\DSL\{config, flow_context, row, rows}; use function Flow\ETL\DSL\{int_entry, str_entry}; use Flow\ETL\Exception\InvalidArgumentException; use Flow\ETL\Transformer\DropDuplicatesTransformer; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class DropDuplicatesTransformerTest extends FlowTestCase { @@ -23,21 +24,11 @@ public function test_dropping_duplicated_entries_from_rows() : void { $transformer = new DropDuplicatesTransformer('id'); - $rows = new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'name1')), - Row::create(int_entry('id', 1), str_entry('name', 'name1')), - Row::create(int_entry('id', 2), str_entry('name', 'name2')), - Row::create(int_entry('id', 2), str_entry('name', 'name2')), - Row::create(int_entry('id', 3), str_entry('name', 'name3')), - ); + $rows = rows(row(int_entry('id', 1), str_entry('name', 'name1')), row(int_entry('id', 1), str_entry('name', 'name1')), row(int_entry('id', 2), str_entry('name', 'name2')), row(int_entry('id', 2), str_entry('name', 'name2')), row(int_entry('id', 3), str_entry('name', 'name3'))); self::assertEquals( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'name1')), - Row::create(int_entry('id', 2), str_entry('name', 'name2')), - Row::create(int_entry('id', 3), str_entry('name', 'name3')), - ), - $transformer->transform($rows, new FlowContext(Config::default())) + rows(row(int_entry('id', 1), str_entry('name', 'name1')), row(int_entry('id', 2), str_entry('name', 'name2')), row(int_entry('id', 3), str_entry('name', 'name3'))), + $transformer->transform($rows, flow_context(config())) ); } @@ -45,23 +36,11 @@ public function test_dropping_duplicates_when_not_all_rows_has_expected_entry() { $transformer = new DropDuplicatesTransformer('id'); - $rows = new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'name1')), - Row::create(int_entry('id', 1), str_entry('name', 'name1')), - Row::create(int_entry('id', 2), str_entry('name', 'name2')), - Row::create(int_entry('id', 2), str_entry('name', 'name2')), - Row::create(str_entry('name', 'name3')), - Row::create(int_entry('id', 4), str_entry('name', 'name4')), - ); + $rows = rows(row(int_entry('id', 1), str_entry('name', 'name1')), row(int_entry('id', 1), str_entry('name', 'name1')), row(int_entry('id', 2), str_entry('name', 'name2')), row(int_entry('id', 2), str_entry('name', 'name2')), row(str_entry('name', 'name3')), row(int_entry('id', 4), str_entry('name', 'name4'))); self::assertEquals( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'name1')), - Row::create(int_entry('id', 2), str_entry('name', 'name2')), - Row::create(str_entry('name', 'name3')), - Row::create(int_entry('id', 4), str_entry('name', 'name4')), - ), - $transformer->transform($rows, new FlowContext(Config::default())) + rows(row(int_entry('id', 1), str_entry('name', 'name1')), row(int_entry('id', 2), str_entry('name', 'name2')), row(str_entry('name', 'name3')), row(int_entry('id', 4), str_entry('name', 'name4'))), + $transformer->transform($rows, flow_context(config())) ); } @@ -69,21 +48,11 @@ public function test_dropping_duplications_based_on_two_entries() : void { $transformer = new DropDuplicatesTransformer('id', 'name'); - $rows = new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'name1')), - Row::create(int_entry('id', 1), str_entry('name', 'name1')), - Row::create(int_entry('id', 2), str_entry('name', 'name2')), - Row::create(int_entry('id', 2), str_entry('name', 'name2')), - Row::create(int_entry('id', 3), str_entry('name', 'name3')), - ); + $rows = rows(row(int_entry('id', 1), str_entry('name', 'name1')), row(int_entry('id', 1), str_entry('name', 'name1')), row(int_entry('id', 2), str_entry('name', 'name2')), row(int_entry('id', 2), str_entry('name', 'name2')), row(int_entry('id', 3), str_entry('name', 'name3'))); self::assertEquals( - new Rows( - Row::create(int_entry('id', 1), str_entry('name', 'name1')), - Row::create(int_entry('id', 2), str_entry('name', 'name2')), - Row::create(int_entry('id', 3), str_entry('name', 'name3')), - ), - $transformer->transform($rows, new FlowContext(Config::default())) + rows(row(int_entry('id', 1), str_entry('name', 'name1')), row(int_entry('id', 2), str_entry('name', 'name2')), row(int_entry('id', 3), str_entry('name', 'name3'))), + $transformer->transform($rows, flow_context(config())) ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropEntriesTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropEntriesTransformerTest.php index c1c13171f..31c0ac500 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropEntriesTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropEntriesTransformerTest.php @@ -4,9 +4,10 @@ namespace Flow\ETL\Tests\Unit\Transformer; +use function Flow\ETL\DSL\{config, flow_context}; use function Flow\ETL\DSL\{int_entry, json_entry, row, rows, string_entry}; use Flow\ETL\Transformer\DropEntriesTransformer; -use Flow\ETL\{Config, FlowContext, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class DropEntriesTransformerTest extends FlowTestCase { @@ -25,7 +26,7 @@ public function test_dropping_entries() : void [ ['name' => 'Row Name'], ], - $transformer->transform($rows, new FlowContext(Config::default()))->toArray() + $transformer->transform($rows, flow_context(config()))->toArray() ); } @@ -44,7 +45,7 @@ public function test_removing_not_existing_entries() : void [ ['id' => 1, 'name' => 'Row Name', 'array' => ['test']], ], - $transformer->transform($rows, new FlowContext(Config::default()))->toArray() + $transformer->transform($rows, flow_context(config()))->toArray() ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/EntryNameStyleConverterTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/EntryNameStyleConverterTransformerTest.php index a8d67a0cf..b00cb55c8 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/EntryNameStyleConverterTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/EntryNameStyleConverterTransformerTest.php @@ -4,9 +4,10 @@ namespace Flow\ETL\Tests\Unit\Transformer; -use function Flow\ETL\DSL\string_entry; +use function Flow\ETL\DSL\{config, row, rows}; +use function Flow\ETL\DSL\{flow_context, string_entry}; use Flow\ETL\Transformer\EntryNameStyleConverterTransformer; -use Flow\ETL\{Config, FlowContext, Function\StyleConverter\StringStyles, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Function\StyleConverter\StringStyles, Tests\FlowTestCase}; final class EntryNameStyleConverterTransformerTest extends FlowTestCase { @@ -14,12 +15,7 @@ public function test_conversion_of_entry_names_style() : void { $transformer = new EntryNameStyleConverterTransformer(StringStyles::SNAKE); - $rows = $transformer->transform(new Rows( - Row::create( - string_entry('CamelCaseEntryName', 'test'), - string_entry('otherCaseEntryName', 'test'), - ) - ), new FlowContext(Config::default())); + $rows = $transformer->transform(rows(row(string_entry('CamelCaseEntryName', 'test'), string_entry('otherCaseEntryName', 'test'))), flow_context(config())); self::assertSame( [ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/GroupToArrayTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/GroupToArrayTransformerTest.php index cac19a600..223ba3490 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/GroupToArrayTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/GroupToArrayTransformerTest.php @@ -4,37 +4,16 @@ namespace Flow\ETL\Tests\Unit\Transformer; -use function Flow\ETL\DSL\string_entry; +use function Flow\ETL\DSL\{config, row, rows}; +use function Flow\ETL\DSL\{float_entry, flow_context, integer_entry, string_entry}; use Flow\ETL\Transformer\GroupToArrayTransformer; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class GroupToArrayTransformerTest extends FlowTestCase { public function test_grouping_entries_to_array() : void { - $rows = new Rows( - Row::create( - new Row\Entry\IntegerEntry('order_id', 1), - string_entry('sku', 'SKU-01'), - new Row\Entry\IntegerEntry('quantity', 1), - new Row\Entry\FloatEntry('price', 10.00), - string_entry('currency', 'PLN'), - ), - Row::create( - new Row\Entry\IntegerEntry('order_id', 1), - string_entry('sku', 'SKU-02'), - new Row\Entry\IntegerEntry('quantity', 1), - new Row\Entry\FloatEntry('price', 5.00), - string_entry('currency', 'PLN'), - ), - Row::create( - new Row\Entry\IntegerEntry('order_id', 2), - string_entry('sku', 'SKU-01'), - new Row\Entry\IntegerEntry('quantity', 1), - new Row\Entry\FloatEntry('price', 10.00), - string_entry('currency', 'PLN'), - ) - ); + $rows = rows(row(integer_entry('order_id', 1), string_entry('sku', 'SKU-01'), integer_entry('quantity', 1), float_entry('price', 10.00), string_entry('currency', 'PLN')), row(integer_entry('order_id', 1), string_entry('sku', 'SKU-02'), integer_entry('quantity', 1), float_entry('price', 5.00), string_entry('currency', 'PLN')), row(integer_entry('order_id', 2), string_entry('sku', 'SKU-01'), integer_entry('quantity', 1), float_entry('price', 10.00), string_entry('currency', 'PLN'))); $transformer = new GroupToArrayTransformer('order_id', 'order_line_items'); @@ -70,7 +49,7 @@ public function test_grouping_entries_to_array() : void ], ], ], - $transformer->transform($rows, new FlowContext(Config::default()))->toArray() + $transformer->transform($rows, flow_context(config()))->toArray() ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/JoinEachRowsTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/JoinEachRowsTransformerTest.php index ddc4f2b03..e4be00e0a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/JoinEachRowsTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/JoinEachRowsTransformerTest.php @@ -4,10 +4,11 @@ namespace Flow\ETL\Tests\Unit\Transformer; +use function Flow\ETL\DSL\{config, flow_context}; use function Flow\ETL\DSL\{int_entry, row, rows, str_entry}; use Flow\ETL\Join\Expression; use Flow\ETL\Transformer\JoinEachRowsTransformer; -use Flow\ETL\{Config, DataFrame, DataFrameFactory, Flow, FlowContext, Rows, Tests\FlowTestCase}; +use Flow\ETL\{DataFrame, DataFrameFactory, Flow, Rows, Tests\FlowTestCase}; final class JoinEachRowsTransformerTest extends FlowTestCase { @@ -39,7 +40,7 @@ public function from(Rows $rows) : DataFrame ['id' => 1, 'country' => 'PL', 'joined_name' => 'Poland', 'joined_code' => 'PL'], ['id' => 2, 'country' => 'US', 'joined_name' => 'United States', 'joined_code' => 'US'], ], - $transformer->transform($left, new FlowContext(Config::default()))->toArray() + $transformer->transform($left, flow_context(config()))->toArray() ); } @@ -71,7 +72,7 @@ public function from(Rows $rows) : DataFrame ['id' => 2, 'country' => 'US', 'joined_name' => 'United States', 'joined_code' => 'US'], ['id' => 3, 'country' => 'FR', 'joined_name' => null, 'joined_code' => null], ], - $transformer->transform($left, new FlowContext(Config::default()))->toArray() + $transformer->transform($left, flow_context(config()))->toArray() ); } @@ -103,7 +104,7 @@ public function from(Rows $rows) : DataFrame ['id' => 2, 'country' => 'US', 'joined_code' => 'US', 'joined_name' => 'United States'], ['id' => null, 'country' => null, 'joined_code' => 'GB', 'joined_name' => 'Great Britain'], ], - $transformer->transform($left, new FlowContext(Config::default()))->toArray() + $transformer->transform($left, flow_context(config()))->toArray() ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameEntryTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameEntryTransformerTest.php index 7452e0253..d80e1b1de 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameEntryTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameEntryTransformerTest.php @@ -4,9 +4,11 @@ namespace Flow\ETL\Tests\Unit\Transformer; -use function Flow\ETL\DSL\string_entry; +use function Flow\ETL\DSL\{boolean_entry, flow_context, integer_entry, json_entry, string_entry}; +use function Flow\ETL\DSL\{config, row, rows}; +use Flow\ETL\Row\Entry\DateTimeEntry; use Flow\ETL\Transformer\RenameEntryTransformer; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class RenameEntryTransformerTest extends FlowTestCase { @@ -16,34 +18,14 @@ public function test_renaming_entries() : void $renameTransformerTwo = new RenameEntryTransformer('null', 'nothing'); $rows = $renameTransformerOne->transform( - new Rows( - Row::create( - new Row\Entry\IntegerEntry('old_int', 1000), - new Row\Entry\IntegerEntry('id', 1), - string_entry('status', 'PENDING'), - new Row\Entry\BooleanEntry('enabled', true), - new Row\Entry\DateTimeEntry('datetime', new \DateTimeImmutable('2020-01-01 00:00:00 UTC')), - new Row\Entry\JsonEntry('json', ['foo', 'bar']), - string_entry('null', null) - ), - ), - $context = new FlowContext(Config::default()) + rows(row(integer_entry('old_int', 1000), integer_entry('id', 1), string_entry('status', 'PENDING'), boolean_entry('enabled', true), new DateTimeEntry('datetime', new \DateTimeImmutable('2020-01-01 00:00:00 UTC')), json_entry('json', ['foo', 'bar']), string_entry('null', null))), + $context = flow_context(config()) ); $rows = $renameTransformerTwo->transform($rows, $context); self::assertEquals( - new Rows( - Row::create( - new Row\Entry\IntegerEntry('id', 1), - string_entry('status', 'PENDING'), - new Row\Entry\BooleanEntry('enabled', true), - new Row\Entry\DateTimeEntry('datetime', new \DateTimeImmutable('2020-01-01 00:00:00 UTC')), - new Row\Entry\JsonEntry('json', ['foo', 'bar']), - new Row\Entry\IntegerEntry('new_int', 1000), - string_entry('nothing', null) - ), - ), + rows(row(integer_entry('id', 1), string_entry('status', 'PENDING'), boolean_entry('enabled', true), new DateTimeEntry('datetime', new \DateTimeImmutable('2020-01-01 00:00:00 UTC')), json_entry('json', ['foo', 'bar']), integer_entry('new_int', 1000), string_entry('nothing', null))), $rows ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionFilterTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionFilterTransformerTest.php index 9d1ddbd88..6a8100464 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionFilterTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionFilterTransformerTest.php @@ -4,18 +4,16 @@ namespace Flow\ETL\Tests\Unit\Transformer; +use function Flow\ETL\DSL\{config, flow_context, row, rows}; use function Flow\ETL\DSL\{int_entry, lit, ref}; use Flow\ETL\Transformer\ScalarFunctionFilterTransformer; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class ScalarFunctionFilterTransformerTest extends FlowTestCase { public function test_equal() : void { - $rows = new Rows( - Row::create(int_entry('a', 1), int_entry('b', 1)), - Row::create(int_entry('a', 1), int_entry('b', 2)) - ); + $rows = rows(row(int_entry('a', 1), int_entry('b', 1)), row(int_entry('a', 1), int_entry('b', 2))); self::assertSame( [ @@ -23,128 +21,105 @@ public function test_equal() : void ], (new ScalarFunctionFilterTransformer( ref('a')->equals(ref('b')) - ))->transform($rows, new FlowContext(Config::default()))->toArray() + ))->transform($rows, flow_context(config()))->toArray() ); } public function test_equal_on_literal() : void { - $rows = new Rows( - Row::create(int_entry('a', 1), int_entry('b', 1)), - Row::create(int_entry('a', 1), int_entry('b', 2)) - ); + $rows = rows(row(int_entry('a', 1), int_entry('b', 1)), row(int_entry('a', 1), int_entry('b', 2))); self::assertSame( [ ['a' => 1, 'b' => 2], ], - (new ScalarFunctionFilterTransformer(ref('b')->equals(lit(2))))->transform($rows, new FlowContext(Config::default()))->toArray() + (new ScalarFunctionFilterTransformer(ref('b')->equals(lit(2))))->transform($rows, flow_context(config()))->toArray() ); } public function test_greater_than() : void { - $rows = new Rows( - Row::create(int_entry('a', 1), int_entry('b', 2)) - ); + $rows = rows(row(int_entry('a', 1), int_entry('b', 2))); self::assertSame( [ ['a' => 1, 'b' => 2], ], - (new ScalarFunctionFilterTransformer(ref('b')->greaterThan(ref('a'))))->transform($rows, new FlowContext(Config::default()))->toArray() + (new ScalarFunctionFilterTransformer(ref('b')->greaterThan(ref('a'))))->transform($rows, flow_context(config()))->toArray() ); } public function test_greater_than_or_equal() : void { - $rows = new Rows( - Row::create(int_entry('a', 1), int_entry('b', 1)), - Row::create(int_entry('a', 1), int_entry('b', 2)) - ); + $rows = rows(row(int_entry('a', 1), int_entry('b', 1)), row(int_entry('a', 1), int_entry('b', 2))); self::assertSame( [ ['a' => 1, 'b' => 1], ['a' => 1, 'b' => 2], ], - (new ScalarFunctionFilterTransformer(ref('b')->greaterThanEqual(ref('a'))))->transform($rows, new FlowContext(Config::default()))->toArray() + (new ScalarFunctionFilterTransformer(ref('b')->greaterThanEqual(ref('a'))))->transform($rows, flow_context(config()))->toArray() ); } public function test_less_than() : void { - $rows = new Rows( - Row::create(int_entry('a', 1), int_entry('b', 1)), - Row::create(int_entry('a', 1), int_entry('b', 2)) - ); + $rows = rows(row(int_entry('a', 1), int_entry('b', 1)), row(int_entry('a', 1), int_entry('b', 2))); self::assertSame( [ ['a' => 1, 'b' => 2], ], - (new ScalarFunctionFilterTransformer(ref('a')->lessThan(ref('b'))))->transform($rows, new FlowContext(Config::default()))->toArray() + (new ScalarFunctionFilterTransformer(ref('a')->lessThan(ref('b'))))->transform($rows, flow_context(config()))->toArray() ); } public function test_less_than_equal() : void { - $rows = new Rows( - Row::create(int_entry('a', 1), int_entry('b', 1)), - Row::create(int_entry('a', 1), int_entry('b', 2)) - ); + $rows = rows(row(int_entry('a', 1), int_entry('b', 1)), row(int_entry('a', 1), int_entry('b', 2))); self::assertSame( [ ['a' => 1, 'b' => 1], ['a' => 1, 'b' => 2], ], - (new ScalarFunctionFilterTransformer(ref('a')->lessThanEqual(ref('b'))))->transform($rows, new FlowContext(Config::default()))->toArray() + (new ScalarFunctionFilterTransformer(ref('a')->lessThanEqual(ref('b'))))->transform($rows, flow_context(config()))->toArray() ); } public function test_not_equal() : void { - $rows = new Rows( - Row::create(int_entry('a', 1), int_entry('b', 1)), - Row::create(int_entry('a', 1), int_entry('b', 2)) - ); + $rows = rows(row(int_entry('a', 1), int_entry('b', 1)), row(int_entry('a', 1), int_entry('b', 2))); self::assertSame( [ ['a' => 1, 'b' => 2], ], - (new ScalarFunctionFilterTransformer(ref('a')->notEquals(ref('b'))))->transform($rows, new FlowContext(Config::default()))->toArray() + (new ScalarFunctionFilterTransformer(ref('a')->notEquals(ref('b'))))->transform($rows, flow_context(config()))->toArray() ); } public function test_not_same() : void { - $rows = new Rows( - Row::create(int_entry('a', 1), int_entry('b', 1)), - Row::create(int_entry('a', 1), int_entry('b', 2)) - ); + $rows = rows(row(int_entry('a', 1), int_entry('b', 1)), row(int_entry('a', 1), int_entry('b', 2))); self::assertSame( [ ['a' => 1, 'b' => 2], ], - (new ScalarFunctionFilterTransformer(ref('a')->notSame(ref('b'))))->transform($rows, new FlowContext(Config::default()))->toArray() + (new ScalarFunctionFilterTransformer(ref('a')->notSame(ref('b'))))->transform($rows, flow_context(config()))->toArray() ); } public function test_same() : void { - $rows = new Rows( - Row::create(int_entry('a', 1), int_entry('b', 1)), - Row::create(int_entry('a', 1), int_entry('b', 2)) - ); + $rows = rows(row(int_entry('a', 1), int_entry('b', 1)), row(int_entry('a', 1), int_entry('b', 2))); self::assertSame( [ ['a' => 1, 'b' => 1], ], - (new ScalarFunctionFilterTransformer(ref('a')->same(ref('b'))))->transform($rows, new FlowContext(Config::default()))->toArray() + (new ScalarFunctionFilterTransformer(ref('a')->same(ref('b'))))->transform($rows, flow_context(config()))->toArray() ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionTransformerTest.php index bdc32e701..5ae6906a7 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionTransformerTest.php @@ -4,6 +4,7 @@ namespace Flow\ETL\Tests\Unit\Transformer; +use function Flow\ETL\DSL\{config, flow_context, row, rows}; use function Flow\ETL\DSL\{int_entry, list_entry, lit, @@ -14,7 +15,7 @@ xml_entry}; use Flow\ETL\Exception\InvalidArgumentException; use Flow\ETL\Transformer\ScalarFunctionTransformer; -use Flow\ETL\{Config, FlowContext, Row, Rows, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class ScalarFunctionTransformerTest extends FlowTestCase { @@ -24,7 +25,7 @@ public function test_lit_expression_on_empty_rows() : void [ ], (new ScalarFunctionTransformer('number', lit(1_000))) - ->transform(new Rows(), new FlowContext(Config::default())) + ->transform(rows(), flow_context(config())) ->toArray() ); } @@ -37,8 +38,8 @@ public function test_lit_expression_on_non_empty_rows() : void ], (new ScalarFunctionTransformer('number', lit(1))) ->transform( - new Rows(Row::create(str_entry('name', 'Norbert'))), - new FlowContext(Config::default()) + rows(row(str_entry('name', 'Norbert'))), + flow_context(config()) ) ->toArray() ); @@ -50,7 +51,7 @@ public function test_plus_expression_on_empty_rows() : void [ ], (new ScalarFunctionTransformer('number', ref('num')->plus(ref('num1')))) - ->transform(new Rows(), new FlowContext(Config::default())) + ->transform(rows(), flow_context(config())) ->toArray() ); } @@ -62,9 +63,7 @@ public function test_plus_expression_on_non_empty_rows() : void ['a' => 1, 'b' => 2, 'c' => 3], ], (new ScalarFunctionTransformer('c', ref('a')->plus(ref('b')))) - ->transform(new Rows( - Row::create(int_entry('a', 1), int_entry('b', 2)) - ), new FlowContext(Config::default())) + ->transform(rows(row(int_entry('a', 1), int_entry('b', 2))), flow_context(config())) ->toArray() ); } @@ -80,8 +79,8 @@ public function test_plus_expression_on_non_existing_rows() : void ], (new ScalarFunctionTransformer('number', ref('num')->plus(ref('num1')))) ->transform( - new Rows(Row::create(int_entry('a', 1))), - new FlowContext(Config::default()) + rows(row(int_entry('a', 1))), + flow_context(config()) ) ->toArray() ); @@ -101,8 +100,8 @@ public function test_xml_xpath_expression_when_there_is_more_than_one_node_under ], type_list(type_xml_element())), (new ScalarFunctionTransformer('xpath', ref('xml')->xpath('/root/foo'))) ->transform( - new Rows(Row::create(xml_entry('xml', $xml))), - new FlowContext(Config::default()) + rows(row(xml_entry('xml', $xml))), + flow_context(config()) ) ->first() ->get(ref('xpath')) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/SelectEntriesTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/SelectEntriesTransformerTest.php index efb901768..c6f09c27d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/SelectEntriesTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/SelectEntriesTransformerTest.php @@ -4,9 +4,10 @@ namespace Flow\ETL\Tests\Unit\Transformer; +use function Flow\ETL\DSL\{config, flow_context}; use function Flow\ETL\DSL\{int_entry, json_entry, row, rows, str_entry, string_entry}; use Flow\ETL\Transformer\SelectEntriesTransformer; -use Flow\ETL\{Config, FlowContext, Tests\FlowTestCase}; +use Flow\ETL\{Tests\FlowTestCase}; final class SelectEntriesTransformerTest extends FlowTestCase { @@ -25,7 +26,7 @@ public function test_selecting_entries() : void [ ['name' => 'Row Name'], ], - $transformer->transform($rows, new FlowContext(Config::default()))->toArray() + $transformer->transform($rows, flow_context(config()))->toArray() ); } @@ -42,7 +43,7 @@ public function test_selecting_not_existing_entries() : void $transformer = new SelectEntriesTransformer('not_existing'); self::assertSame( [['not_existing' => null]], - $transformer->transform($rows, new FlowContext(Config::default()))->toArray() + $transformer->transform($rows, flow_context(config()))->toArray() ); } @@ -61,7 +62,7 @@ public function test_using_select_entries_in_order_to_change_entries_order() : v [ ['name' => 'Row Name', 'id' => 1, 'array' => ['test']], ], - $transformer->transform($rows, new FlowContext(Config::default()))->toArray() + $transformer->transform($rows, flow_context(config()))->toArray() ); } } diff --git a/src/core/etl/tests/Flow/Serializer/Tests/Unit/CompressingSerializerTest.php b/src/core/etl/tests/Flow/Serializer/Tests/Unit/CompressingSerializerTest.php index cc25959f0..1135efc17 100644 --- a/src/core/etl/tests/Flow/Serializer/Tests/Unit/CompressingSerializerTest.php +++ b/src/core/etl/tests/Flow/Serializer/Tests/Unit/CompressingSerializerTest.php @@ -20,27 +20,17 @@ protected function setUp() : void public function test_serializing_rows() : void { - $rows = new Rows( - ...\array_map( - fn () : Row => Row::create( - int_entry('integer', 1), - str_entry('string', 'string'), - bool_entry('boolean', true), - datetime_entry('datetime', new \DateTimeImmutable('2022-01-01 00:00:00')), - str_entry('null', null), - float_entry('float', 0.12), - struct_entry( - 'struct', - ['integer' => 1, 'string' => 'string'], - struct_type([ - struct_element('integer', type_int()), - struct_element('string', type_string()), - ]) - ) - ), - \range(0, 100) - ) - ); + $rows = \Flow\ETL\DSL\rows(...\array_map( + fn () : Row => \Flow\ETL\DSL\row(int_entry('integer', 1), str_entry('string', 'string'), bool_entry('boolean', true), datetime_entry('datetime', new \DateTimeImmutable('2022-01-01 00:00:00')), str_entry('null', null), float_entry('float', 0.12), struct_entry( + 'struct', + ['integer' => 1, 'string' => 'string'], + struct_type([ + struct_element('integer', type_int()), + struct_element('string', type_string()), + ]) + )), + \range(0, 100) + )); $serializer = new CompressingSerializer(new NativePHPSerializer()); diff --git a/src/core/etl/tests/Flow/Serializer/Tests/Unit/NativePHPSerializerTest.php b/src/core/etl/tests/Flow/Serializer/Tests/Unit/NativePHPSerializerTest.php index aba35d0b1..6610e8caf 100644 --- a/src/core/etl/tests/Flow/Serializer/Tests/Unit/NativePHPSerializerTest.php +++ b/src/core/etl/tests/Flow/Serializer/Tests/Unit/NativePHPSerializerTest.php @@ -13,27 +13,17 @@ final class NativePHPSerializerTest extends TestCase { public function test_serializing_rows() : void { - $rows = new Rows( - ...\array_map( - fn () : Row => Row::create( - int_entry('integer', 1), - str_entry('string', 'string'), - bool_entry('boolean', true), - datetime_entry('datetime', new \DateTimeImmutable('2022-01-01 00:00:00')), - str_entry('null', null), - float_entry('float', 0.12), - struct_entry( - 'struct', - ['integer' => 1, 'string' => 'string'], - struct_type([ - struct_element('integer', type_int()), - struct_element('string', type_string()), - ]) - ) - ), - \range(0, 100) - ) - ); + $rows = \Flow\ETL\DSL\rows(...\array_map( + fn () : Row => \Flow\ETL\DSL\row(int_entry('integer', 1), str_entry('string', 'string'), bool_entry('boolean', true), datetime_entry('datetime', new \DateTimeImmutable('2022-01-01 00:00:00')), str_entry('null', null), float_entry('float', 0.12), struct_entry( + 'struct', + ['integer' => 1, 'string' => 'string'], + struct_type([ + struct_element('integer', type_int()), + struct_element('string', type_string()), + ]) + )), + \range(0, 100) + )); $serializer = new NativePHPSerializer(); diff --git a/tools/rector/composer.json b/tools/rector/composer.json index 9b3270f7a..fedc409fd 100644 --- a/tools/rector/composer.json +++ b/tools/rector/composer.json @@ -4,6 +4,11 @@ "require-dev": { "rector/rector": "^2.0" }, + "autoload": { + "psr-4": { + "Flow\\Tools\\Rector\\": "src/Flow/Tools/Rector/" + } + }, "config": { "allow-plugins": false } diff --git a/tools/rector/composer.lock b/tools/rector/composer.lock index d2d783ff8..4f638093f 100644 --- a/tools/rector/composer.lock +++ b/tools/rector/composer.lock @@ -127,10 +127,10 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, - "platform": [], - "platform-dev": [], + "platform": {}, + "platform-dev": {}, "plugin-api-version": "2.6.0" } diff --git a/tools/rector/src/Flow/Tools/Rector/NewObjectToFunction.php b/tools/rector/src/Flow/Tools/Rector/NewObjectToFunction.php new file mode 100644 index 000000000..4cc507d49 --- /dev/null +++ b/tools/rector/src/Flow/Tools/Rector/NewObjectToFunction.php @@ -0,0 +1,18 @@ +className); + RectorAssert::functionName($this->functionName); + } +} diff --git a/tools/rector/src/Flow/Tools/Rector/NewToFunctionCallRector.php b/tools/rector/src/Flow/Tools/Rector/NewToFunctionCallRector.php new file mode 100644 index 000000000..1f1d76b10 --- /dev/null +++ b/tools/rector/src/Flow/Tools/Rector/NewToFunctionCallRector.php @@ -0,0 +1,79 @@ + + */ + private array $configuration = []; + + public function configure(array $configuration) : void + { + $this->configuration = $configuration; + } + + public function getFunctionName(string $className) : ?string + { + foreach ($this->configuration as $newObjectToFunction) { + if ($newObjectToFunction->className === $className) { + return $newObjectToFunction->functionName; + } + } + + return null; + } + + /** + * @return array + */ + public function getNodeTypes() : array + { + return [New_::class]; + } + + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Replace object instantiation with function calls', [ + [ + new CodeSample( + <<<'CODE_SAMPLE' +'new Rows();', +'rows();' +CODE_SAMPLE + ), + ], + ]); + } + + /** + * @param Node $node + * + * @return null|Node + */ + public function refactor(Node $node) : ?Node + { + if (!$node instanceof New_) { + return null; + } + + $className = $this->getName($node->class); + $functionName = $this->getFunctionName($className); + + if ($functionName === null) { + return null; + } + + return new FuncCall(new Name\FullyQualified($functionName), $node->getArgs()); + } +} diff --git a/web/landing/resources/dsl.json b/web/landing/resources/dsl.json index 5a2a3d4ff..db55da100 100644 --- a/web/landing/resources/dsl.json +++ b/web/landing/resources/dsl.json @@ -1 +1 @@ -[{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":147,"slug":"df","name":"df","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Flow","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"data_frame"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"overwrite"}}],"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBkYXRhX2ZyYW1lKCkgOiBGbG93LgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":155,"slug":"data-frame","name":"data_frame","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Flow","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"data_frame"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"overwrite"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":163,"slug":"from-rows","name":"from_rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"RowsExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"data_frame"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"overwrite"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":170,"slug":"from-path-partitions","name":"from_path_partitions","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"PathPartitionsExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"partitioning","example":"path_partitions"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":182,"slug":"from-array","name":"from_array","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"iterable","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"ArrayExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_reading","example":"array"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"data_frame"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBpdGVyYWJsZSAkYXJyYXkKICogQHBhcmFtIG51bGx8U2NoZW1hICRzY2hlbWEgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aFNjaGVtYSgpIG1ldGhvZCBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":199,"slug":"from-cache","name":"from_cache","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"id","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"fallback_extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"clear","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"CacheExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBzdHJpbmcgJGlkIC0gY2FjaGUgaWQgZnJvbSB3aGljaCBkYXRhIHdpbGwgYmUgZXh0cmFjdGVkCiAqIEBwYXJhbSBudWxsfEV4dHJhY3RvciAkZmFsbGJhY2tfZXh0cmFjdG9yIC0gZXh0cmFjdG9yIHRoYXQgd2lsbCBiZSB1c2VkIHdoZW4gY2FjaGUgaXMgZW1wdHkgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aEZhbGxiYWNrRXh0cmFjdG9yKCkgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIGJvb2wgJGNsZWFyIC0gY2xlYXIgY2FjaGUgYWZ0ZXIgZXh0cmFjdGlvbiAtIEBkZXByZWNhdGVkIHVzZSB3aXRoQ2xlYXJPbkZpbmlzaCgpIG1ldGhvZCBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":215,"slug":"from-all","name":"from_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"extractors","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"ChainExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":221,"slug":"from-memory","name":"from_memory","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"memory","type":[{"name":"Memory","namespace":"Flow\\ETL\\Memory","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"MemoryExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":227,"slug":"files","name":"files","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"directory","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"FilesExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":233,"slug":"filesystem-cache","name":"filesystem_cache","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"cache_dir","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"serializer","type":[{"name":"Serializer","namespace":"Flow\\Serializer","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"FilesystemCache","namespace":"Flow\\ETL\\Cache\\Implementation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":239,"slug":"chunks-from","name":"chunks_from","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"chunk_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ChunkExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":245,"slug":"from-pipeline","name":"from_pipeline","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pipeline","type":[{"name":"Pipeline","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"PipelineExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":251,"slug":"from-data-frame","name":"from_data_frame","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"data_frame","type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DataFrameExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":257,"slug":"from-sequence-date-period","name":"from_sequence_date_period","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"start","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"end","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"SequenceExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":266,"slug":"from-sequence-date-period-recurrences","name":"from_sequence_date_period_recurrences","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"start","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"recurrences","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"SequenceExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":275,"slug":"from-sequence-number","name":"from_sequence_number","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"start","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"end","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"step","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"SequenceExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":284,"slug":"to-callable","name":"to_callable","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"callable","type":[{"name":"callable","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"CallbackLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":290,"slug":"to-memory","name":"to_memory","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"memory","type":[{"name":"Memory","namespace":"Flow\\ETL\\Memory","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"MemoryLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":302,"slug":"to-array","name":"to_array","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_writing","example":"array"}}],"doc_comment":"LyoqCiAqIENvbnZlcnQgcm93cyB0byBhbiBhcnJheSBhbmQgc3RvcmUgdGhlbSBpbiBwYXNzZWQgYXJyYXkgdmFyaWFibGUuCiAqCiAqIEBwYXJhbS1vdXQgYXJyYXk8YXJyYXk8bWl4ZWQ+PiAkYXJyYXkKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":308,"slug":"to-output","name":"to_output","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":314,"slug":"to-stderr","name":"to_stderr","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":320,"slug":"to-stdout","name":"to_stdout","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":326,"slug":"to-stream","name":"to_stream","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"uri","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"mode","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":332,"slug":"to-transformation","name":"to_transformation","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"loader","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"TransformerLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":338,"slug":"to-branch","name":"to_branch","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"condition","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"loader","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":344,"slug":"bool-entry","name":"bool_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"bool","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"BooleanEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":350,"slug":"boolean-entry","name":"boolean_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"bool","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"BooleanEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":356,"slug":"datetime-entry","name":"datetime_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"DateTimeEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":362,"slug":"time-entry","name":"time_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"TimeEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":368,"slug":"date-entry","name":"date_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"DateEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":374,"slug":"int-entry","name":"int_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"IntegerEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":380,"slug":"integer-entry","name":"integer_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"IntegerEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":386,"slug":"enum-entry","name":"enum_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"enum","type":[{"name":"UnitEnum","namespace":"","is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"EnumEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":392,"slug":"float-entry","name":"float_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"float","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"FloatEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":398,"slug":"json-entry","name":"json_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"JsonEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":407,"slug":"json-object-entry","name":"json_object_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"JsonEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":"LyoqCiAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":417,"slug":"str-entry","name":"str_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"StringEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":433,"slug":"null-entry","name":"null_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StringEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":"LyoqCiAqIFRoaXMgZnVuY3Rpb25zIGlzIGFuIGFsaWFzIGZvciBjcmVhdGluZyBzdHJpbmcgZW50cnkgZnJvbSBudWxsLgogKiBUaGUgbWFpbiBkaWZmZXJlbmNlIGJldHdlZW4gdXNpbmcgdGhpcyBmdW5jdGlvbiBhbiBzaW1wbHkgc3RyX2VudHJ5IHdpdGggc2Vjb25kIGFyZ3VtZW50IG51bGwKICogaXMgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgYWxzbyBrZWVwIGEgbm90ZSBpbiB0aGUgbWV0YWRhdGEgdGhhdCB0eXBlIG1pZ2h0IG5vdCBiZSBmaW5hbC4KICogRm9yIGV4YW1wbGUgd2hlbiB3ZSBuZWVkIHRvIGd1ZXNzIGNvbHVtbiB0eXBlIGZyb20gcm93cyBiZWNhdXNlIHNjaGVtYSB3YXMgbm90IHByb3ZpZGVkLAogKiBhbmQgZ2l2ZW4gY29sdW1uIGluIHRoZSBmaXJzdCByb3cgaXMgbnVsbCwgaXQgbWlnaHQgc3RpbGwgY2hhbmdlIG9uY2Ugd2UgZ2V0IHRvIHRoZSBzZWNvbmQgcm93LgogKiBUaGF0IG1ldGFkYXRhIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHN0cmluZ19lbnRyeSB3YXMgY3JlYXRlZCBmcm9tIG51bGwgb3Igbm90LgogKgogKiBCeSBkZXNpZ24gZmxvdyBhc3N1bWVzIHdoZW4gZ3Vlc3NpbmcgY29sdW1uIHR5cGUgdGhhdCBudWxsIHdvdWxkIGJlIGEgc3RyaW5nICh0aGUgbW9zdCBmbGV4aWJsZSB0eXBlKS4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":439,"slug":"string-entry","name":"string_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"StringEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":445,"slug":"uuid-entry","name":"uuid_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"Uuid","namespace":"Flow\\ETL\\PHP\\Value","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"UuidEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":451,"slug":"xml-entry","name":"xml_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"DOMDocument","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"XMLEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":457,"slug":"xml-element-entry","name":"xml_element_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"DOMElement","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"XMLElementEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":466,"slug":"entries","name":"entries","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entries","type":[{"name":"Entry","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Entries","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBFbnRyeTxtaXhlZCwgbWl4ZWQ+IC4uLiRlbnRyaWVzCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":472,"slug":"struct-entry","name":"struct_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"type","type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":478,"slug":"structure-entry","name":"structure_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"type","type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":487,"slug":"struct-type","name":"struct_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxTdHJ1Y3R1cmVFbGVtZW50PiAkZWxlbWVudHMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":496,"slug":"structure-type","name":"structure_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxTdHJ1Y3R1cmVFbGVtZW50PiAkZWxlbWVudHMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":505,"slug":"type-structure","name":"type_structure","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxTdHJ1Y3R1cmVFbGVtZW50PiAkZWxlbWVudHMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":514,"slug":"struct-element","name":"struct_element","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"Type","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureElement","namespace":"Flow\\ETL\\PHP\\Type\\Logical\\Structure","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkdHlwZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":523,"slug":"structure-element","name":"structure_element","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"Type","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureElement","namespace":"Flow\\ETL\\PHP\\Type\\Logical\\Structure","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkdHlwZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":529,"slug":"list-entry","name":"list_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"type","type":[{"name":"ListType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ListEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":538,"slug":"type-list","name":"type_list","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"element","type":[{"name":"Type","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ListType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkZWxlbWVudAogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":547,"slug":"type-map","name":"type_map","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"key_type","type":[{"name":"IntegerType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false},{"name":"StringType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value_type","type":[{"name":"Type","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"MapType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkdmFsdWVfdHlwZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":553,"slug":"map-entry","name":"map_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"mapType","type":[{"name":"MapType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"MapEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":559,"slug":"type-json","name":"type_json","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"JsonType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":565,"slug":"type-datetime","name":"type_datetime","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DateTimeType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":571,"slug":"type-date","name":"type_date","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DateType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":577,"slug":"type-time","name":"type_time","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"TimeType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":583,"slug":"type-xml","name":"type_xml","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"XMLType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":589,"slug":"type-xml-element","name":"type_xml_element","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"XMLElementType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":595,"slug":"type-uuid","name":"type_uuid","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"UuidType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":601,"slug":"type-int","name":"type_int","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"IntegerType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":607,"slug":"type-integer","name":"type_integer","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"IntegerType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":613,"slug":"type-string","name":"type_string","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StringType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":619,"slug":"type-float","name":"type_float","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"FloatType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":625,"slug":"type-boolean","name":"type_boolean","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"BooleanType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":634,"slug":"type-object","name":"type_object","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ObjectType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBjbGFzcy1zdHJpbmcgJGNsYXNzCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":640,"slug":"type-resource","name":"type_resource","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ResourceType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":646,"slug":"type-array","name":"type_array","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"empty","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":652,"slug":"type-callable","name":"type_callable","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"CallableType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":658,"slug":"type-null","name":"type_null","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"NullType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":667,"slug":"type-enum","name":"type_enum","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"EnumType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBjbGFzcy1zdHJpbmc8XFVuaXRFbnVtPiAkY2xhc3MKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":676,"slug":"row","name":"row","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"Entry","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Row","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBFbnRyeTxtaXhlZCwgbWl4ZWQ+IC4uLiRlbnRyeQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":682,"slug":"rows","name":"rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"row","type":[{"name":"Row","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":688,"slug":"rows-partitioned","name":"rows_partitioned","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"rows","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"partitions","type":[{"name":"Partitions","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":697,"slug":"col","name":"col","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEFuIGFsaWFzIGZvciBgcmVmYC4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":707,"slug":"entry","name":"entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"create_columns"}}],"doc_comment":"LyoqCiAqIEFuIGFsaWFzIGZvciBgcmVmYC4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":714,"slug":"ref","name":"ref","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"create_columns"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":720,"slug":"structure-ref","name":"structure_ref","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureFunctions","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":726,"slug":"list-ref","name":"list_ref","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ListFunctions","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":732,"slug":"refs","name":"refs","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entries","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":738,"slug":"optional","name":"optional","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Optional","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":745,"slug":"lit","name":"lit","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Literal","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"create_columns"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":751,"slug":"exists","name":"exists","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Exists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":757,"slug":"when","name":"when","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"condition","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"then","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"else","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"When","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":763,"slug":"array-get","name":"array_get","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayGet","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":769,"slug":"array-get-collection","name":"array_get_collection","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":775,"slug":"array-get-collection-first","name":"array_get_collection_first","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"keys","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":781,"slug":"array-exists","name":"array_exists","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayPathExists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":787,"slug":"array-merge","name":"array_merge","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"left","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"right","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayMerge","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":793,"slug":"array-merge-collection","name":"array_merge_collection","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayMergeCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":799,"slug":"array-key-rename","name":"array_key_rename","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"newName","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayKeyRename","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":805,"slug":"array-keys-style-convert","name":"array_keys_style_convert","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"style","type":[{"name":"StringStyles","namespace":"Flow\\ETL\\Function\\StyleConverter","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayKeysStyleConvert","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":811,"slug":"array-sort","name":"array_sort","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"sort_function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Sort","namespace":"Flow\\ETL\\Function\\ArraySort","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"recursive","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArraySort","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":821,"slug":"array-reverse","name":"array_reverse","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"preserveKeys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayReverse","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":827,"slug":"now","name":"now","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"time_zone","type":[{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false},{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Now","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":833,"slug":"between","name":"between","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"lower_bound","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"upper_bound","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"boundary","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Boundary","namespace":"Flow\\ETL\\Function\\Between","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Between","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":839,"slug":"to-date-time","name":"to_date_time","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ToDateTime","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":845,"slug":"to-date","name":"to_date","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ToDate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":851,"slug":"date-time-format","name":"date_time_format","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DateTimeFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":857,"slug":"split","name":"split","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Split","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":863,"slug":"combine","name":"combine","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"values","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Combine","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":869,"slug":"concat","name":"concat","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"functions","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Concat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":875,"slug":"hash","name":"hash","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"algorithm","type":[{"name":"Algorithm","namespace":"Flow\\ETL\\Hash","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Hash","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":884,"slug":"cast","name":"cast","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"type","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Type","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Cast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBTY2FsYXJGdW5jdGlvbnxzdHJpbmd8VHlwZTxtaXhlZD4gJHR5cGUKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":890,"slug":"coalesce","name":"coalesce","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Coalesce","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":896,"slug":"count","name":"count","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Count","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":921,"slug":"array-unpack","name":"array_unpack","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"skip_keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"entry_prefix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"ArrayUnpack","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":"LyoqCiAqIFVucGFja3MgZWFjaCBlbGVtZW50IG9mIGFuIGFycmF5IGludG8gYSBuZXcgZW50cnksIHVzaW5nIHRoZSBhcnJheSBrZXkgYXMgdGhlIGVudHJ5IG5hbWUuCiAqCiAqIEJlZm9yZToKICogKy0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rCiAqIHxpZHwgICAgICAgICAgICAgIGFycmF5fAogKiArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICogfCAxfHsiYSI6MSwiYiI6MiwiYyI6M318CiAqIHwgMnx7ImQiOjQsImUiOjUsImYiOjZ9fAogKiArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICoKICogQWZ0ZXI6CiAqICstLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKICogfGlkfGFyci5ifGFyci5jfGFyci5kfGFyci5lfGFyci5mfAogKiArLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCiAqIHwgMXwgICAgMnwgICAgM3wgICAgIHwgICAgIHwgICAgIHwKICogfCAyfCAgICAgfCAgICAgfCAgICA0fCAgICA1fCAgICA2fAogKiArLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":947,"slug":"array-expand","name":"array_expand","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"expand","type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function\\ArrayExpand","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":"LyoqCiAqIEV4cGFuZHMgZWFjaCB2YWx1ZSBpbnRvIGVudHJ5LCBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSB2YWx1ZSwgbXVsdGlwbGUgcm93cyB3aWxsIGJlIGNyZWF0ZWQuCiAqIEFycmF5IGtleXMgYXJlIGlnbm9yZWQsIG9ubHkgdmFsdWVzIGFyZSB1c2VkIHRvIGNyZWF0ZSBuZXcgcm93cy4KICoKICogQmVmb3JlOgogKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKiAgIHxpZHwgICAgICAgICAgICAgIGFycmF5fAogKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKiAgIHwgMXx7ImEiOjEsImIiOjIsImMiOjN9fAogKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKgogKiBBZnRlcjoKICogICArLS0rLS0tLS0tLS0rCiAqICAgfGlkfGV4cGFuZGVkfAogKiAgICstLSstLS0tLS0tLSsKICogICB8IDF8ICAgICAgIDF8CiAqICAgfCAxfCAgICAgICAyfAogKiAgIHwgMXwgICAgICAgM3wKICogICArLS0rLS0tLS0tLS0rCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":953,"slug":"size","name":"size","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Size","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":959,"slug":"uuid-v4","name":"uuid_v4","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Uuid","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":965,"slug":"uuid-v7","name":"uuid_v7","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Uuid","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":971,"slug":"ulid","name":"ulid","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Ulid","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":977,"slug":"lower","name":"lower","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ToLower","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":983,"slug":"capitalize","name":"capitalize","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Capitalize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":989,"slug":"upper","name":"upper","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ToUpper","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":995,"slug":"all","name":"all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"functions","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1001,"slug":"any","name":"any","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1007,"slug":"not","name":"not","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Not","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1013,"slug":"to-timezone","name":"to_timezone","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ToTimeZone","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1019,"slug":"ignore-error-handler","name":"ignore_error_handler","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"IgnoreError","namespace":"Flow\\ETL\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1025,"slug":"skip-rows-handler","name":"skip_rows_handler","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SkipRows","namespace":"Flow\\ETL\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1031,"slug":"throw-error-handler","name":"throw_error_handler","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"ThrowError","namespace":"Flow\\ETL\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1037,"slug":"regex-replace","name":"regex_replace","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"replacement","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"RegexReplace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1043,"slug":"regex-match-all","name":"regex_match_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"RegexMatchAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1049,"slug":"regex-match","name":"regex_match","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"RegexMatch","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1055,"slug":"regex","name":"regex","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Regex","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1061,"slug":"regex-all","name":"regex_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"RegexAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1067,"slug":"sprintf","name":"sprintf","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"args","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true}],"return_type":[{"name":"Sprintf","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1073,"slug":"sanitize","name":"sanitize","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"placeholder","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"skipCharacters","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Sanitize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1079,"slug":"round","name":"round","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"precision","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"mode","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Round","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1085,"slug":"number-format","name":"number_format","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"decimals","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"decimal_separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"thousands_separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"NumberFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1096,"slug":"to-entry","name":"to_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"data","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"entryFactory","type":[{"name":"EntryFactory","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Entry","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxtaXhlZD4gJGRhdGEKICoKICogQHJldHVybiBFbnRyeTxtaXhlZCwgbWl4ZWQ+CiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1106,"slug":"array-to-row","name":"array_to_row","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"entryFactory","type":[{"name":"EntryFactory","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"partitions","type":[{"name":"Partitions","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Row","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheTxtaXhlZD4+fGFycmF5PG1peGVkfHN0cmluZz4gJGRhdGEKICogQHBhcmFtIGFycmF5PFBhcnRpdGlvbj58UGFydGl0aW9ucyAkcGFydGl0aW9ucwogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1150,"slug":"array-to-rows","name":"array_to_rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"entryFactory","type":[{"name":"EntryFactory","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"partitions","type":[{"name":"Partitions","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheTxtaXhlZD4+fGFycmF5PG1peGVkfHN0cmluZz4gJGRhdGEKICogQHBhcmFtIGFycmF5PFBhcnRpdGlvbj58UGFydGl0aW9ucyAkcGFydGl0aW9ucwogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1178,"slug":"rank","name":"rank","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Rank","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"WINDOW_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1184,"slug":"dens-rank","name":"dens_rank","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"DenseRank","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"WINDOW_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1190,"slug":"dense-rank","name":"dense_rank","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"DenseRank","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"WINDOW_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1196,"slug":"average","name":"average","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Average","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1202,"slug":"greatest","name":"greatest","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true}],"return_type":[{"name":"Greatest","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1208,"slug":"least","name":"least","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true}],"return_type":[{"name":"Least","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1214,"slug":"collect","name":"collect","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Collect","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1220,"slug":"collect-unique","name":"collect_unique","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"CollectUnique","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1226,"slug":"window","name":"window","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Window","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1232,"slug":"sum","name":"sum","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Sum","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1238,"slug":"first","name":"first","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"First","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1244,"slug":"last","name":"last","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Last","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1250,"slug":"max","name":"max","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Max","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1256,"slug":"min","name":"min","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Min","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1262,"slug":"row-number","name":"row_number","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"RowNumber","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1268,"slug":"schema","name":"schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"definitions","type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1274,"slug":"schema-to-json","name":"schema_to_json","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"json_flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1283,"slug":"schema-from-json","name":"schema_from_json","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1289,"slug":"schema-strict-matcher","name":"schema_strict_matcher","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"StrictSchemaMatcher","namespace":"Flow\\ETL\\Row\\Schema\\Matcher","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1295,"slug":"schema-evolving-matcher","name":"schema_evolving_matcher","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"EvolvingSchemaMatcher","namespace":"Flow\\ETL\\Row\\Schema\\Matcher","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1301,"slug":"int-schema","name":"int_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1307,"slug":"str-schema","name":"str_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1313,"slug":"bool-schema","name":"bool_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1319,"slug":"float-schema","name":"float_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1325,"slug":"map-schema","name":"map_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"MapType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1331,"slug":"list-schema","name":"list_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"ListType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1340,"slug":"enum-schema","name":"enum_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBjbGFzcy1zdHJpbmc8XFVuaXRFbnVtPiAkdHlwZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1346,"slug":"null-schema","name":"null_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1352,"slug":"datetime-schema","name":"datetime_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1358,"slug":"time-schema","name":"time_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1364,"slug":"date-schema","name":"date_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1370,"slug":"json-schema","name":"json_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1376,"slug":"xml-schema","name":"xml_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1382,"slug":"xml-element-schema","name":"xml_element_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1388,"slug":"struct-schema","name":"struct_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1394,"slug":"structure-schema","name":"structure_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1400,"slug":"uuid-schema","name":"uuid_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1406,"slug":"execution-context","name":"execution_context","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"FlowContext","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1412,"slug":"flow-context","name":"flow_context","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"FlowContext","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1418,"slug":"config","name":"config","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1424,"slug":"config-builder","name":"config_builder","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1430,"slug":"overwrite","name":"overwrite","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1436,"slug":"ignore","name":"ignore","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1442,"slug":"exception-if-exists","name":"exception_if_exists","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1448,"slug":"append","name":"append","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1457,"slug":"get-type","name":"get_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Type","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEByZXR1cm4gVHlwZTxtaXhlZD4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1463,"slug":"print-schema","name":"print_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"formatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1469,"slug":"print-rows","name":"print_rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1475,"slug":"identical","name":"identical","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"left","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"right","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Identical","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1481,"slug":"equal","name":"equal","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"left","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"right","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Equal","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1487,"slug":"compare-all","name":"compare_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"comparisons","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1493,"slug":"compare-any","name":"compare_any","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"comparisons","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1501,"slug":"join-on","name":"join_on","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"comparisons","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"join_prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Expression","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"join","example":"join"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"join","example":"join_each"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1507,"slug":"compare-entries-by-name","name":"compare_entries_by_name","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"order","type":[{"name":"Order","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Comparator","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1513,"slug":"compare-entries-by-name-desc","name":"compare_entries_by_name_desc","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Comparator","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1522,"slug":"compare-entries-by-type","name":"compare_entries_by_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"priorities","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"order","type":[{"name":"Order","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Comparator","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxjbGFzcy1zdHJpbmc8RW50cnk8bWl4ZWQsIG1peGVkPj4sIGludD4gJHByaW9yaXRpZXMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1531,"slug":"compare-entries-by-type-desc","name":"compare_entries_by_type_desc","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"priorities","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Comparator","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxjbGFzcy1zdHJpbmc8RW50cnk8bWl4ZWQsIG1peGVkPj4sIGludD4gJHByaW9yaXRpZXMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1540,"slug":"compare-entries-by-type-and-name","name":"compare_entries_by_type_and_name","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"priorities","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"order","type":[{"name":"Order","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Comparator","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxjbGFzcy1zdHJpbmc8RW50cnk8bWl4ZWQsIG1peGVkPj4sIGludD4gJHByaW9yaXRpZXMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1553,"slug":"is-type","name":"is_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmd8VHlwZTxtaXhlZD4+ICR0eXBlcwogKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1583,"slug":"generate-random-string","name":"generate_random_string","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"generator","type":[{"name":"NativePHPRandomValueGenerator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1589,"slug":"generate-random-int","name":"generate_random_int","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"start","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"end","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"generator","type":[{"name":"NativePHPRandomValueGenerator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1595,"slug":"random-string","name":"random_string","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"length","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"generator","type":[{"name":"RandomValueGenerator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"RandomString","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1603,"slug":"dom-element-to-string","name":"dom_element_to_string","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"element","type":[{"name":"DOMElement","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"format_output","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"preserver_white_space","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"false","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1616,"slug":"date-interval-to-milliseconds","name":"date_interval_to_milliseconds","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1633,"slug":"date-interval-to-seconds","name":"date_interval_to_seconds","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1650,"slug":"date-interval-to-microseconds","name":"date_interval_to_microseconds","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1667,"slug":"caster-options","name":"caster_options","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Options","namespace":"Flow\\ETL\\PHP\\Type\\Caster","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1683,"slug":"caster","name":"caster","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"options","type":[{"name":"Options","namespace":"Flow\\ETL\\PHP\\Type\\Caster","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Caster","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"doc_comment":"LyoqCiAqIEFkdmFuY2VkIHR5cGUgY2FzdGluZyBtZWNoYW5pc20uCiAqIFVzYWdlOgogKgogKiBjYXN0ZXIoKS0+dG8odHlwZV9mbG9hdChwcmVjaXNpb246IDIpKS0+dmFsdWUoIjEuMTIzNCIpIC8vIDEuMTIKICoKICogT3B0aW9ucyBjYW4gYmUgYWxzbyBwYXNzZWQgdG8gInRvIiBmdW5jdGlvbiB0byBvdmVycmlkZSBkZWZhdWx0IG9wdGlvbnMuCiAqCiAqIGNhc3RlcigpLT50byh0eXBlX2Zsb2F0KHByZWNpc2lvbjogMiksIGNhc3Rlcl9vcHRpb25zKCkpLT52YWx1ZSgiMS4xMjM0IikgLy8gMS4xMgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":13,"slug":"bar-chart","name":"bar_chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"label","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"datasets","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"BarChart","namespace":"Flow\\ETL\\Adapter\\ChartJS\\Chart","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CHART_JS","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":19,"slug":"line-chart","name":"line_chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"label","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"datasets","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"LineChart","namespace":"Flow\\ETL\\Adapter\\ChartJS\\Chart","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CHART_JS","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":25,"slug":"pie-chart","name":"pie_chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"label","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"datasets","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"PieChart","namespace":"Flow\\ETL\\Adapter\\ChartJS\\Chart","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CHART_JS","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":31,"slug":"to-chartjs","name":"to_chartjs","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"type","type":[{"name":"Chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ChartJSLoader","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CHART_JS","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":42,"slug":"to-chartjs-file","name":"to_chartjs_file","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"type","type":[{"name":"Chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"output","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"template","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"ChartJSLoader","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CHART_JS","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBDaGFydCAkdHlwZQogKiBAcGFyYW0gbnVsbHxQYXRofHN0cmluZyAkb3V0cHV0IC0gQGRlcHJlY2F0ZWQgdXNlICRsb2FkZXItPndpdGhPdXRwdXRQYXRoKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxQYXRofHN0cmluZyAkdGVtcGxhdGUgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aFRlbXBsYXRlKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":70,"slug":"to-chartjs-var","name":"to_chartjs_var","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"type","type":[{"name":"Chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"output","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ChartJSLoader","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CHART_JS","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBDaGFydCAkdHlwZQogKiBAcGFyYW0gYXJyYXkgJG91dHB1dCAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoT3V0cHV0VmFyKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-csv\/src\/Flow\/ETL\/Adapter\/CSV\/functions.php","start_line_in_file":28,"slug":"from-csv","name":"from_csv","namespace":"Flow\\ETL\\Adapter\\CSV","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"empty_to_null","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"separator","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"enclosure","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"escape","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"characters_read_in_line","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"CSVExtractor","namespace":"Flow\\ETL\\Adapter\\CSV","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CSV","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_reading","example":"csv"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gYm9vbCAkZW1wdHlfdG9fbnVsbCAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRW1wdHlUb051bGwoKSBpbnN0ZWFkCiAqIEBwYXJhbSBib29sICR3aXRoX2hlYWRlciAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoSGVhZGVyKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHNlcGFyYXRvciAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoU2VwYXJhdG9yKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGVuY2xvc3VyZSAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRW5jbG9zdXJlKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGVzY2FwZSAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRXNjYXBlKCkgaW5zdGVhZAogKiBAcGFyYW0gaW50PDEsIG1heD4gJGNoYXJhY3RlcnNfcmVhZF9pbl9saW5lIC0gQGRlcHJlY2F0ZWQgdXNlICRsb2FkZXItPndpdGhDaGFyYWN0ZXJzUmVhZEluTGluZSgpIGluc3RlYWQKICogQHBhcmFtIG51bGx8U2NoZW1hICRzY2hlbWEgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aFNjaGVtYSgpIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-csv\/src\/Flow\/ETL\/Adapter\/CSV\/functions.php","start_line_in_file":73,"slug":"to-csv","name":"to_csv","namespace":"Flow\\ETL\\Adapter\\CSV","parameters":[{"name":"uri","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"enclosure","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"escape","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"new_line_separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"datetime_format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"CSVLoader","namespace":"Flow\\ETL\\Adapter\\CSV","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CSV","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkdXJpCiAqIEBwYXJhbSBib29sICR3aXRoX2hlYWRlciAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoSGVhZGVyKCkgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRzZXBhcmF0b3IgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aFNlcGFyYXRvcigpIGluc3RlYWQKICogQHBhcmFtIHN0cmluZyAkZW5jbG9zdXJlIC0gQGRlcHJlY2F0ZWQgdXNlICRsb2FkZXItPndpdGhFbmNsb3N1cmUoKSBpbnN0ZWFkCiAqIEBwYXJhbSBzdHJpbmcgJGVzY2FwZSAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRXNjYXBlKCkgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRuZXdfbGluZV9zZXBhcmF0b3IgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aE5ld0xpbmVTZXBhcmF0b3IoKSBpbnN0ZWFkCiAqIEBwYXJhbSBzdHJpbmcgJGRhdGV0aW1lX2Zvcm1hdCAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRGF0ZVRpbWVGb3JtYXQoKSBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-csv\/src\/Flow\/ETL\/Adapter\/CSV\/functions.php","start_line_in_file":98,"slug":"csv-detect-separator","name":"csv_detect_separator","namespace":"Flow\\ETL\\Adapter\\CSV","parameters":[{"name":"stream","type":[{"name":"SourceStream","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"lines","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"fallback","type":[{"name":"Option","namespace":"Flow\\ETL\\Adapter\\CSV\\Detector","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"options","type":[{"name":"Options","namespace":"Flow\\ETL\\Adapter\\CSV\\Detector","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Option","namespace":"Flow\\ETL\\Adapter\\CSV\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CSV","type":"HELPER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBTb3VyY2VTdHJlYW0gJHN0cmVhbSAtIHZhbGlkIHJlc291cmNlIHRvIENTViBmaWxlCiAqIEBwYXJhbSBpbnQ8MSwgbWF4PiAkbGluZXMgLSBudW1iZXIgb2YgbGluZXMgdG8gcmVhZCBmcm9tIENTViBmaWxlLCBkZWZhdWx0IDUsIG1vcmUgbGluZXMgbWVhbnMgbW9yZSBhY2N1cmF0ZSBkZXRlY3Rpb24gYnV0IHNsb3dlciBkZXRlY3Rpb24KICogQHBhcmFtIG51bGx8T3B0aW9uICRmYWxsYmFjayAtIGZhbGxiYWNrIG9wdGlvbiB0byB1c2Ugd2hlbiBubyBiZXN0IG9wdGlvbiBjYW4gYmUgZGV0ZWN0ZWQsIGRlZmF1bHQgaXMgT3B0aW9uKCcsJywgJyInLCAnXFwnKQogKiBAcGFyYW0gbnVsbHxPcHRpb25zICRvcHRpb25zIC0gb3B0aW9ucyB0byB1c2UgZm9yIGRldGVjdGlvbiwgZGVmYXVsdCBpcyBPcHRpb25zOjphbGwoKQogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":22,"slug":"dbal-dataframe-factory","name":"dbal_dataframe_factory","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters","type":[{"name":"QueryParameter","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"DbalDataFrameFactory","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5CiAqIEBwYXJhbSBRdWVyeVBhcmFtZXRlciAuLi4kcGFyYW1ldGVycwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":42,"slug":"from-dbal-limit-offset","name":"from_dbal_limit_offset","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"table","type":[{"name":"Table","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"order_by","type":[{"name":"OrderBy","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"page_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"maximum","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"DbalLimitOffsetExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBzdHJpbmd8VGFibGUgJHRhYmxlCiAqIEBwYXJhbSBhcnJheTxPcmRlckJ5PnxPcmRlckJ5ICRvcmRlcl9ieQogKiBAcGFyYW0gaW50ICRwYWdlX3NpemUKICogQHBhcmFtIG51bGx8aW50ICRtYXhpbXVtCiAqCiAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":68,"slug":"from-dbal-limit-offset-qb","name":"from_dbal_limit_offset_qb","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"queryBuilder","type":[{"name":"QueryBuilder","namespace":"Doctrine\\DBAL\\Query","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"page_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"maximum","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"DbalLimitOffsetExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBpbnQgJHBhZ2Vfc2l6ZQogKiBAcGFyYW0gbnVsbHxpbnQgJG1heGltdW0KICov"},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":91,"slug":"from-dbal-queries","name":"from_dbal_queries","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters_set","type":[{"name":"ParametersSet","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBudWxsfFBhcmFtZXRlcnNTZXQgJHBhcmFtZXRlcnNfc2V0IC0gZWFjaCBvbmUgcGFyYW1ldGVycyBhcnJheSB3aWxsIGJlIGV2YWx1YXRlZCBhcyBuZXcgcXVlcnkKICogQHBhcmFtIGFycmF5PGludHxzdHJpbmcsIERiYWxBcnJheVR5cGV8RGJhbFBhcmFtZXRlclR5cGV8RGJhbFR5cGV8aW50fHN0cmluZz4gJHR5cGVzCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":120,"slug":"dbal-from-queries","name":"dbal_from_queries","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters_set","type":[{"name":"ParametersSet","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBkZXByZWNhdGVkIHVzZSBmcm9tX2RiYWxfcXVlcmllcygpIGluc3RlYWQKICoKICogQHBhcmFtIG51bGx8UGFyYW1ldGVyc1NldCAkcGFyYW1ldGVyc19zZXQgLSBlYWNoIG9uZSBwYXJhbWV0ZXJzIGFycmF5IHdpbGwgYmUgZXZhbHVhdGVkIGFzIG5ldyBxdWVyeQogKiBAcGFyYW0gYXJyYXk8aW50fHN0cmluZywgRGJhbEFycmF5VHlwZXxEYmFsUGFyYW1ldGVyVHlwZXxEYmFsVHlwZXxpbnR8c3RyaW5nPiAkdHlwZXMKICov"},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":134,"slug":"from-dbal-query","name":"from_dbal_query","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxsaXN0PG1peGVkPiAkcGFyYW1ldGVycyAtIEBkZXByZWNhdGVkIHVzZSBEYmFsUXVlcnlFeHRyYWN0b3I6OndpdGhQYXJhbWV0ZXJzKCkgaW5zdGVhZAogKiBAcGFyYW0gYXJyYXk8aW50fHN0cmluZywgRGJhbEFycmF5VHlwZXxEYmFsUGFyYW1ldGVyVHlwZXxEYmFsVHlwZXxpbnR8c3RyaW5nPiAkdHlwZXMgLSBAZGVwcmVjYXRlZCB1c2UgRGJhbFF1ZXJ5RXh0cmFjdG9yOjp3aXRoVHlwZXMoKSBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":155,"slug":"dbal-from-query","name":"dbal_from_query","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBkZXByZWNhdGVkIHVzZSBmcm9tX2RiYWxfcXVlcnkoKSBpbnN0ZWFkCiAqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxsaXN0PG1peGVkPiAkcGFyYW1ldGVycyAtIEBkZXByZWNhdGVkIHVzZSBEYmFsUXVlcnlFeHRyYWN0b3I6OndpdGhQYXJhbWV0ZXJzKCkgaW5zdGVhZAogKiBAcGFyYW0gYXJyYXk8aW50fHN0cmluZywgRGJhbEFycmF5VHlwZXxEYmFsUGFyYW1ldGVyVHlwZXxEYmFsVHlwZXxpbnR8c3RyaW5nPiAkdHlwZXMgLSBAZGVwcmVjYXRlZCB1c2UgRGJhbFF1ZXJ5RXh0cmFjdG9yOjp3aXRoVHlwZXMoKSBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":179,"slug":"to-dbal-table-insert","name":"to_dbal_table_insert","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DbalLoader","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEluIG9yZGVyIHRvIGNvbnRyb2wgdGhlIHNpemUgb2YgdGhlIHNpbmdsZSBpbnNlcnQsIHVzZSBEYXRhRnJhbWU6OmNodW5rU2l6ZSgpIG1ldGhvZCBqdXN0IGJlZm9yZSBjYWxsaW5nIERhdGFGcmFtZTo6bG9hZCgpLgogKgogKiBAcGFyYW0gYXJyYXk8c3RyaW5nLCBtaXhlZD58Q29ubmVjdGlvbiAkY29ubmVjdGlvbgogKiBAcGFyYW0gYXJyYXl7CiAqICBza2lwX2NvbmZsaWN0cz86IGJvb2xlYW4sCiAqICBjb25zdHJhaW50Pzogc3RyaW5nLAogKiAgY29uZmxpY3RfY29sdW1ucz86IGFycmF5PHN0cmluZz4sCiAqICB1cGRhdGVfY29sdW1ucz86IGFycmF5PHN0cmluZz4sCiAqICBwcmltYXJ5X2tleV9jb2x1bW5zPzogYXJyYXk8c3RyaW5nPgogKiB9ICRvcHRpb25zIC0gQGRlcHJlY2F0ZWQgdXNlIERiYWxMb2FkZXI6OndpdGhPcGVyYXRpb25PcHRpb25zKCkgaW5zdGVhZAogKgogKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":204,"slug":"to-dbal-table-update","name":"to_dbal_table_update","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DbalLoader","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"LOADER"}}],"doc_comment":"LyoqCiAqICBJbiBvcmRlciB0byBjb250cm9sIHRoZSBzaXplIG9mIHRoZSBzaW5nbGUgcmVxdWVzdCwgdXNlIERhdGFGcmFtZTo6Y2h1bmtTaXplKCkgbWV0aG9kIGp1c3QgYmVmb3JlIGNhbGxpbmcgRGF0YUZyYW1lOjpsb2FkKCkuCiAqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBhcnJheXsKICogIHNraXBfY29uZmxpY3RzPzogYm9vbGVhbiwKICogIGNvbnN0cmFpbnQ\/OiBzdHJpbmcsCiAqICBjb25mbGljdF9jb2x1bW5zPzogYXJyYXk8c3RyaW5nPiwKICogIHVwZGF0ZV9jb2x1bW5zPzogYXJyYXk8c3RyaW5nPiwKICogIHByaW1hcnlfa2V5X2NvbHVtbnM\/OiBhcnJheTxzdHJpbmc+CiAqIH0gJG9wdGlvbnMgLSBAZGVwcmVjYXRlZCB1c2UgRGJhbExvYWRlcjo6d2l0aE9wZXJhdGlvbk9wdGlvbnMoKSBpbnN0ZWFkCiAqCiAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-elasticsearch\/src\/Flow\/ETL\/Adapter\/Elasticsearch\/functions.php","start_line_in_file":32,"slug":"to-es-bulk-index","name":"to_es_bulk_index","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","parameters":[{"name":"config","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"id_factory","type":[{"name":"IdFactory","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ElasticsearchLoader","namespace":"Flow\\ETL\\Adapter\\Elasticsearch\\ElasticsearchPHP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"ELASTIC_SEARCH","type":"LOADER"}}],"doc_comment":"LyoqCiAqIGh0dHBzOi8vd3d3LmVsYXN0aWMuY28vZ3VpZGUvZW4vZWxhc3RpY3NlYXJjaC9yZWZlcmVuY2UvbWFzdGVyL2RvY3MtYnVsay5odG1sLgogKgogKiBJbiBvcmRlciB0byBjb250cm9sIHRoZSBzaXplIG9mIHRoZSBzaW5nbGUgcmVxdWVzdCwgdXNlIERhdGFGcmFtZTo6Y2h1bmtTaXplKCkgbWV0aG9kIGp1c3QgYmVmb3JlIGNhbGxpbmcgRGF0YUZyYW1lOjpsb2FkKCkuCiAqCiAqIEBwYXJhbSBhcnJheXsKICogIGhvc3RzPzogYXJyYXk8c3RyaW5nPiwKICogIGNvbm5lY3Rpb25QYXJhbXM\/OiBhcnJheTxtaXhlZD4sCiAqICByZXRyaWVzPzogaW50LAogKiAgc25pZmZPblN0YXJ0PzogYm9vbGVhbiwKICogIHNzbENlcnQ\/OiBhcnJheTxzdHJpbmc+LAogKiAgc3NsS2V5PzogYXJyYXk8c3RyaW5nPiwKICogIHNzbFZlcmlmaWNhdGlvbj86IGJvb2xlYW58c3RyaW5nLAogKiAgZWxhc3RpY01ldGFIZWFkZXI\/OiBib29sZWFuLAogKiAgaW5jbHVkZVBvcnRJbkhvc3RIZWFkZXI\/OiBib29sZWFuCiAqIH0gJGNvbmZpZwogKiBAcGFyYW0gc3RyaW5nICRpbmRleAogKiBAcGFyYW0gSWRGYWN0b3J5ICRpZF9mYWN0b3J5CiAqIEBwYXJhbSBhcnJheTxtaXhlZD4gJHBhcmFtZXRlcnMgLSBodHRwczovL3d3dy5lbGFzdGljLmNvL2d1aWRlL2VuL2VsYXN0aWNzZWFyY2gvcmVmZXJlbmNlL21hc3Rlci9kb2NzLWJ1bGsuaHRtbCAtIEBkZXByZWNhdGVkIHVzZSB3aXRoUGFyYW1ldGVycyBtZXRob2QgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-elasticsearch\/src\/Flow\/ETL\/Adapter\/Elasticsearch\/functions.php","start_line_in_file":42,"slug":"entry-id-factory","name":"entry_id_factory","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","parameters":[{"name":"entry_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"IdFactory","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"ELASTIC_SEARCH","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-elasticsearch\/src\/Flow\/ETL\/Adapter\/Elasticsearch\/functions.php","start_line_in_file":48,"slug":"hash-id-factory","name":"hash_id_factory","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","parameters":[{"name":"entry_names","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"IdFactory","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"ELASTIC_SEARCH","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-elasticsearch\/src\/Flow\/ETL\/Adapter\/Elasticsearch\/functions.php","start_line_in_file":74,"slug":"to-es-bulk-update","name":"to_es_bulk_update","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","parameters":[{"name":"config","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"id_factory","type":[{"name":"IdFactory","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ElasticsearchLoader","namespace":"Flow\\ETL\\Adapter\\Elasticsearch\\ElasticsearchPHP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"ELASTIC_SEARCH","type":"LOADER"}}],"doc_comment":"LyoqCiAqICBodHRwczovL3d3dy5lbGFzdGljLmNvL2d1aWRlL2VuL2VsYXN0aWNzZWFyY2gvcmVmZXJlbmNlL21hc3Rlci9kb2NzLWJ1bGsuaHRtbC4KICoKICogSW4gb3JkZXIgdG8gY29udHJvbCB0aGUgc2l6ZSBvZiB0aGUgc2luZ2xlIHJlcXVlc3QsIHVzZSBEYXRhRnJhbWU6OmNodW5rU2l6ZSgpIG1ldGhvZCBqdXN0IGJlZm9yZSBjYWxsaW5nIERhdGFGcmFtZTo6bG9hZCgpLgogKgogKiBAcGFyYW0gYXJyYXl7CiAqICBob3N0cz86IGFycmF5PHN0cmluZz4sCiAqICBjb25uZWN0aW9uUGFyYW1zPzogYXJyYXk8bWl4ZWQ+LAogKiAgcmV0cmllcz86IGludCwKICogIHNuaWZmT25TdGFydD86IGJvb2xlYW4sCiAqICBzc2xDZXJ0PzogYXJyYXk8c3RyaW5nPiwKICogIHNzbEtleT86IGFycmF5PHN0cmluZz4sCiAqICBzc2xWZXJpZmljYXRpb24\/OiBib29sZWFufHN0cmluZywKICogIGVsYXN0aWNNZXRhSGVhZGVyPzogYm9vbGVhbiwKICogIGluY2x1ZGVQb3J0SW5Ib3N0SGVhZGVyPzogYm9vbGVhbgogKiB9ICRjb25maWcKICogQHBhcmFtIHN0cmluZyAkaW5kZXgKICogQHBhcmFtIElkRmFjdG9yeSAkaWRfZmFjdG9yeQogKiBAcGFyYW0gYXJyYXk8bWl4ZWQ+ICRwYXJhbWV0ZXJzIC0gaHR0cHM6Ly93d3cuZWxhc3RpYy5jby9ndWlkZS9lbi9lbGFzdGljc2VhcmNoL3JlZmVyZW5jZS9tYXN0ZXIvZG9jcy1idWxrLmh0bWwgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aFBhcmFtZXRlcnMgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-elasticsearch\/src\/Flow\/ETL\/Adapter\/Elasticsearch\/functions.php","start_line_in_file":89,"slug":"es-hits-to-rows","name":"es_hits_to_rows","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","parameters":[{"name":"source","type":[{"name":"DocumentDataSource","namespace":"Flow\\ETL\\Adapter\\Elasticsearch\\ElasticsearchPHP","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"HitsIntoRowsTransformer","namespace":"Flow\\ETL\\Adapter\\Elasticsearch\\ElasticsearchPHP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"ELASTIC_SEARCH","type":"HELPER"}}],"doc_comment":"LyoqCiAqIFRyYW5zZm9ybXMgZWxhc3RpY3NlYXJjaCByZXN1bHRzIGludG8gY2xlYXIgRmxvdyBSb3dzIHVzaW5nIFsnaGl0cyddWydoaXRzJ11beF1bJ19zb3VyY2UnXS4KICoKICogQHJldHVybiBIaXRzSW50b1Jvd3NUcmFuc2Zvcm1lcgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-elasticsearch\/src\/Flow\/ETL\/Adapter\/Elasticsearch\/functions.php","start_line_in_file":117,"slug":"from-es","name":"from_es","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","parameters":[{"name":"config","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"pit_params","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"ElasticsearchExtractor","namespace":"Flow\\ETL\\Adapter\\Elasticsearch\\ElasticsearchPHP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"ELASTIC_SEARCH","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEV4dHJhY3RvciB3aWxsIGF1dG9tYXRpY2FsbHkgdHJ5IHRvIGl0ZXJhdGUgb3ZlciB3aG9sZSBpbmRleCB1c2luZyBvbmUgb2YgdGhlIHR3byBpdGVyYXRpb24gbWV0aG9kczouCiAqCiAqIC0gZnJvbS9zaXplCiAqIC0gc2VhcmNoX2FmdGVyCiAqCiAqIFNlYXJjaCBhZnRlciBpcyBzZWxlY3RlZCB3aGVuIHlvdSBwcm92aWRlIGRlZmluZSBzb3J0IHBhcmFtZXRlcnMgaW4gcXVlcnksIG90aGVyd2lzZSBpdCB3aWxsIGZhbGxiYWNrIHRvIGZyb20vc2l6ZS4KICoKICogQHBhcmFtIGFycmF5ewogKiAgaG9zdHM\/OiBhcnJheTxzdHJpbmc+LAogKiAgY29ubmVjdGlvblBhcmFtcz86IGFycmF5PG1peGVkPiwKICogIHJldHJpZXM\/OiBpbnQsCiAqICBzbmlmZk9uU3RhcnQ\/OiBib29sZWFuLAogKiAgc3NsQ2VydD86IGFycmF5PHN0cmluZz4sCiAqICBzc2xLZXk\/OiBhcnJheTxzdHJpbmc+LAogKiAgc3NsVmVyaWZpY2F0aW9uPzogYm9vbGVhbnxzdHJpbmcsCiAqICBlbGFzdGljTWV0YUhlYWRlcj86IGJvb2xlYW4sCiAqICBpbmNsdWRlUG9ydEluSG9zdEhlYWRlcj86IGJvb2xlYW4KICogfSAkY29uZmlnCiAqIEBwYXJhbSBhcnJheTxtaXhlZD4gJHBhcmFtZXRlcnMgLSBodHRwczovL3d3dy5lbGFzdGljLmNvL2d1aWRlL2VuL2VsYXN0aWNzZWFyY2gvcmVmZXJlbmNlL21hc3Rlci9zZWFyY2gtc2VhcmNoLmh0bWwKICogQHBhcmFtID9hcnJheTxtaXhlZD4gJHBpdF9wYXJhbXMgLSB3aGVuIHVzZWQgZXh0cmFjdG9yIHdpbGwgY3JlYXRlIHBvaW50IGluIHRpbWUgdG8gc3RhYmlsaXplIHNlYXJjaCByZXN1bHRzLiBQb2ludCBpbiB0aW1lIGlzIGF1dG9tYXRpY2FsbHkgY2xvc2VkIHdoZW4gbGFzdCBlbGVtZW50IGlzIGV4dHJhY3RlZC4gaHR0cHM6Ly93d3cuZWxhc3RpYy5jby9ndWlkZS9lbi9lbGFzdGljc2VhcmNoL3JlZmVyZW5jZS9tYXN0ZXIvcG9pbnQtaW4tdGltZS1hcGkuaHRtbCAtIEBkZXByZWNhdGVkIHVzZSB3aXRoUG9pbnRJblRpbWUgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-google-sheet\/src\/Flow\/ETL\/Adapter\/GoogleSheet\/functions.php","start_line_in_file":21,"slug":"from-google-sheet","name":"from_google_sheet","namespace":"Flow\\ETL\\Adapter\\GoogleSheet","parameters":[{"name":"auth_config","type":[{"name":"Sheets","namespace":"Google\\Service","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"spreadsheet_id","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"sheet_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"rows_per_page","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"GOOGLE_SHEET","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt0eXBlOiBzdHJpbmcsIHByb2plY3RfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXlfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXk6IHN0cmluZywgY2xpZW50X2VtYWlsOiBzdHJpbmcsIGNsaWVudF9pZDogc3RyaW5nLCBhdXRoX3VyaTogc3RyaW5nLCB0b2tlbl91cmk6IHN0cmluZywgYXV0aF9wcm92aWRlcl94NTA5X2NlcnRfdXJsOiBzdHJpbmcsIGNsaWVudF94NTA5X2NlcnRfdXJsOiBzdHJpbmd9fFNoZWV0cyAkYXV0aF9jb25maWcKICogQHBhcmFtIHN0cmluZyAkc3ByZWFkc2hlZXRfaWQKICogQHBhcmFtIHN0cmluZyAkc2hlZXRfbmFtZQogKiBAcGFyYW0gYm9vbCAkd2l0aF9oZWFkZXIgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aEhlYWRlciBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gaW50ICRyb3dzX3Blcl9wYWdlIC0gaG93IG1hbnkgcm93cyBwZXIgcGFnZSB0byBmZXRjaCBmcm9tIEdvb2dsZSBTaGVldHMgQVBJIC0gQGRlcHJlY2F0ZWQgdXNlIHdpdGhSb3dzUGVyUGFnZSBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gYXJyYXl7ZGF0ZVRpbWVSZW5kZXJPcHRpb24\/OiBzdHJpbmcsIG1ham9yRGltZW5zaW9uPzogc3RyaW5nLCB2YWx1ZVJlbmRlck9wdGlvbj86IHN0cmluZ30gJG9wdGlvbnMgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aE9wdGlvbnMgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-google-sheet\/src\/Flow\/ETL\/Adapter\/GoogleSheet\/functions.php","start_line_in_file":58,"slug":"from-google-sheet-columns","name":"from_google_sheet_columns","namespace":"Flow\\ETL\\Adapter\\GoogleSheet","parameters":[{"name":"auth_config","type":[{"name":"Sheets","namespace":"Google\\Service","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"spreadsheet_id","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"sheet_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"start_range_column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"end_range_column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"rows_per_page","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"GOOGLE_SHEET","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt0eXBlOiBzdHJpbmcsIHByb2plY3RfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXlfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXk6IHN0cmluZywgY2xpZW50X2VtYWlsOiBzdHJpbmcsIGNsaWVudF9pZDogc3RyaW5nLCBhdXRoX3VyaTogc3RyaW5nLCB0b2tlbl91cmk6IHN0cmluZywgYXV0aF9wcm92aWRlcl94NTA5X2NlcnRfdXJsOiBzdHJpbmcsIGNsaWVudF94NTA5X2NlcnRfdXJsOiBzdHJpbmd9fFNoZWV0cyAkYXV0aF9jb25maWcKICogQHBhcmFtIHN0cmluZyAkc3ByZWFkc2hlZXRfaWQKICogQHBhcmFtIHN0cmluZyAkc2hlZXRfbmFtZQogKiBAcGFyYW0gc3RyaW5nICRzdGFydF9yYW5nZV9jb2x1bW4KICogQHBhcmFtIHN0cmluZyAkZW5kX3JhbmdlX2NvbHVtbgogKiBAcGFyYW0gYm9vbCAkd2l0aF9oZWFkZXIgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aEhlYWRlciBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gaW50ICRyb3dzX3Blcl9wYWdlIC0gaG93IG1hbnkgcm93cyBwZXIgcGFnZSB0byBmZXRjaCBmcm9tIEdvb2dsZSBTaGVldHMgQVBJLCBkZWZhdWx0IDEwMDAgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aFJvd3NQZXJQYWdlIG1ldGhvZCBpbnN0ZWFkCiAqIEBwYXJhbSBhcnJheXtkYXRlVGltZVJlbmRlck9wdGlvbj86IHN0cmluZywgbWFqb3JEaW1lbnNpb24\/OiBzdHJpbmcsIHZhbHVlUmVuZGVyT3B0aW9uPzogc3RyaW5nfSAkb3B0aW9ucyAtIEBkZXByZWNhdGVkIHVzZSB3aXRoT3B0aW9ucyBtZXRob2QgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":19,"slug":"from-json","name":"from_json","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"pointer","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"JsonExtractor","namespace":"Flow\\ETL\\Adapter\\JSON\\JSONMachine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"JSON","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_reading","example":"json"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aCAtIHN0cmluZyBpcyBpbnRlcm5hbGx5IHR1cm5lZCBpbnRvIHN0cmVhbQogKiBAcGFyYW0gP3N0cmluZyAkcG9pbnRlciAtIGlmIHlvdSB3YW50IHRvIGl0ZXJhdGUgb25seSByZXN1bHRzIG9mIGEgc3VidHJlZSwgdXNlIGEgcG9pbnRlciwgcmVhZCBtb3JlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9oYWxheGEvanNvbi1tYWNoaW5lI3BhcnNpbmctYS1zdWJ0cmVlIC0gQGRlcHJlY2F0ZSB1c2Ugd2l0aFBvaW50ZXIgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtID9TY2hlbWEgJHNjaGVtYSAtIGVuZm9yY2Ugc2NoZW1hIG9uIHRoZSBleHRyYWN0ZWQgZGF0YSAtIEBkZXByZWNhdGUgdXNlIHdpdGhTY2hlbWEgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":46,"slug":"to-json","name":"to_json","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"date_time_format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"put_rows_in_new_lines","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"JsonLoader","namespace":"Flow\\ETL\\Adapter\\JSON","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"JSON","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gaW50ICRmbGFncyAtIFBIUCBKU09OIEZsYWdzIC0gQGRlcHJlY2F0ZSB1c2Ugd2l0aEZsYWdzIG1ldGhvZCBpbnN0ZWFkCiAqIEBwYXJhbSBzdHJpbmcgJGRhdGVfdGltZV9mb3JtYXQgLSBmb3JtYXQgZm9yIERhdGVUaW1lSW50ZXJmYWNlOjpmb3JtYXQoKSAtIEBkZXByZWNhdGUgdXNlIHdpdGhEYXRlVGltZUZvcm1hdCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gYm9vbCAkcHV0X3Jvd3NfaW5fbmV3X2xpbmVzIC0gaWYgeW91IHdhbnQgdG8gcHV0IGVhY2ggcm93IGluIGEgbmV3IGxpbmUgLSBAZGVwcmVjYXRlIHVzZSB3aXRoUm93c0luTmV3TGluZXMgbWV0aG9kIGluc3RlYWQKICoKICogQHJldHVybiBKc29uTG9hZGVyCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-meilisearch\/src\/Flow\/ETL\/Adapter\/Meilisearch\/functions.php","start_line_in_file":16,"slug":"to-meilisearch-bulk-index","name":"to_meilisearch_bulk_index","namespace":"Flow\\ETL\\Adapter\\Meilisearch","parameters":[{"name":"config","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"MEILI_SEARCH","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt1cmw6IHN0cmluZywgYXBpS2V5OiBzdHJpbmcsIGh0dHBDbGllbnQ6ID9DbGllbnRJbnRlcmZhY2V9ICRjb25maWcKICov"},{"repository_path":"src\/adapter\/etl-adapter-meilisearch\/src\/Flow\/ETL\/Adapter\/Meilisearch\/functions.php","start_line_in_file":27,"slug":"to-meilisearch-bulk-update","name":"to_meilisearch_bulk_update","namespace":"Flow\\ETL\\Adapter\\Meilisearch","parameters":[{"name":"config","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"MEILI_SEARCH","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt1cmw6IHN0cmluZywgYXBpS2V5OiBzdHJpbmcsIGh0dHBDbGllbnQ6ID9DbGllbnRJbnRlcmZhY2V9ICRjb25maWcKICov"},{"repository_path":"src\/adapter\/etl-adapter-meilisearch\/src\/Flow\/ETL\/Adapter\/Meilisearch\/functions.php","start_line_in_file":38,"slug":"meilisearch-hits-to-rows","name":"meilisearch_hits_to_rows","namespace":"Flow\\ETL\\Adapter\\Meilisearch","parameters":[],"return_type":[{"name":"HitsIntoRowsTransformer","namespace":"Flow\\ETL\\Adapter\\Meilisearch\\MeilisearchPHP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"MEILI_SEARCH","type":"HELPER"}}],"doc_comment":"LyoqCiAqIFRyYW5zZm9ybXMgTWVpbGlzZWFyY2ggcmVzdWx0cyBpbnRvIGNsZWFyIEZsb3cgUm93cy4KICov"},{"repository_path":"src\/adapter\/etl-adapter-meilisearch\/src\/Flow\/ETL\/Adapter\/Meilisearch\/functions.php","start_line_in_file":48,"slug":"from-meilisearch","name":"from_meilisearch","namespace":"Flow\\ETL\\Adapter\\Meilisearch","parameters":[{"name":"config","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"params","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"MeilisearchExtractor","namespace":"Flow\\ETL\\Adapter\\Meilisearch\\MeilisearchPHP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"MEILI_SEARCH","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt1cmw6IHN0cmluZywgYXBpS2V5OiBzdHJpbmd9ICRjb25maWcKICogQHBhcmFtIGFycmF5e3E6IHN0cmluZywgbGltaXQ6ID9pbnQsIG9mZnNldDogP2ludCwgYXR0cmlidXRlc1RvUmV0cmlldmU6ID9hcnJheTxzdHJpbmc+LCBzb3J0OiA\/YXJyYXk8c3RyaW5nPn0gJHBhcmFtcwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":26,"slug":"from-parquet","name":"from_parquet","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Parquet","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"byte_order","type":[{"name":"ByteOrder","namespace":"Flow\\Parquet","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"ParquetExtractor","namespace":"Flow\\ETL\\Adapter\\Parquet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"PARQUET","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_reading","example":"parquet"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gYXJyYXk8c3RyaW5nPiAkY29sdW1ucyAtIGxpc3Qgb2YgY29sdW1ucyB0byByZWFkIGZyb20gcGFycXVldCBmaWxlIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoQ29sdW1uc2AgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIE9wdGlvbnMgJG9wdGlvbnMgLSBAZGVwcmVjYXRlZCB1c2UgYHdpdGhPcHRpb25zYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gQnl0ZU9yZGVyICRieXRlX29yZGVyIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoQnl0ZU9yZGVyYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxpbnQgJG9mZnNldCAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aE9mZnNldGAgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":56,"slug":"to-parquet","name":"to_parquet","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Parquet","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"compressions","type":[{"name":"Compressions","namespace":"Flow\\Parquet\\ParquetFile","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"ParquetLoader","namespace":"Flow\\ETL\\Adapter\\Parquet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"PARQUET","type":"LOADER"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_writing","example":"parquet"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gbnVsbHxPcHRpb25zICRvcHRpb25zIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoT3B0aW9uc2AgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIENvbXByZXNzaW9ucyAkY29tcHJlc3Npb25zIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoQ29tcHJlc3Npb25zYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxTY2hlbWEgJHNjaGVtYSAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aFNjaGVtYWAgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-text\/src\/Flow\/ETL\/Adapter\/Text\/functions.php","start_line_in_file":14,"slug":"from-text","name":"from_text","namespace":"Flow\\ETL\\Adapter\\Text","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"TextExtractor","namespace":"Flow\\ETL\\Adapter\\Text","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"TEXT","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-text\/src\/Flow\/ETL\/Adapter\/Text\/functions.php","start_line_in_file":29,"slug":"to-text","name":"to_text","namespace":"Flow\\ETL\\Adapter\\Text","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"new_line_separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"TEXT","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gc3RyaW5nICRuZXdfbGluZV9zZXBhcmF0b3IgLSBkZWZhdWx0IFBIUF9FT0wgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aE5ld0xpbmVTZXBhcmF0b3IgbWV0aG9kIGluc3RlYWQKICoKICogQHJldHVybiBMb2FkZXIKICov"},{"repository_path":"src\/adapter\/etl-adapter-xml\/src\/Flow\/ETL\/Adapter\/XML\/functions.php","start_line_in_file":34,"slug":"from-xml","name":"from_xml","namespace":"Flow\\ETL\\Adapter\\XML","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"xml_node_path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"XMLParserExtractor","namespace":"Flow\\ETL\\Adapter\\XML","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"XML","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_reading","example":"xml"}}],"doc_comment":"LyoqCiAqICBJbiBvcmRlciB0byBpdGVyYXRlIG9ubHkgb3ZlciA8ZWxlbWVudD4gbm9kZXMgdXNlIGBmcm9tX3htbCgkZmlsZSktPndpdGhYTUxOb2RlUGF0aCgncm9vdC9lbGVtZW50cy9lbGVtZW50JylgLgogKgogKiAgPHJvb3Q+CiAqICAgIDxlbGVtZW50cz4KICogICAgICA8ZWxlbWVudD48L2VsZW1lbnQ+CiAqICAgICAgPGVsZW1lbnQ+PC9lbGVtZW50PgogKiAgICA8ZWxlbWVudHM+CiAqICA8L3Jvb3Q+CiAqCiAqICBYTUwgTm9kZSBQYXRoIGRvZXMgbm90IHN1cHBvcnQgYXR0cmlidXRlcyBhbmQgaXQncyBub3QgeHBhdGgsIGl0IGlzIGp1c3QgYSBzZXF1ZW5jZQogKiAgb2Ygbm9kZSBuYW1lcyBzZXBhcmF0ZWQgd2l0aCBzbGFzaC4KICoKICogQHBhcmFtIFBhdGh8c3RyaW5nICRwYXRoCiAqIEBwYXJhbSBzdHJpbmcgJHhtbF9ub2RlX3BhdGggLSBAZGVwcmVjYXRlZCB1c2UgYGZyb21feG1sKCRmaWxlKS0+d2l0aFhNTE5vZGVQYXRoKCR4bWxOb2RlUGF0aClgIG1ldGhvZCBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-xml\/src\/Flow\/ETL\/Adapter\/XML\/functions.php","start_line_in_file":50,"slug":"to-xml","name":"to_xml","namespace":"Flow\\ETL\\Adapter\\XML","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"root_element_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"row_element_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"attribute_prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"date_time_format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"xml_writer","type":[{"name":"XMLWriter","namespace":"Flow\\ETL\\Adapter\\XML","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"XMLLoader","namespace":"Flow\\ETL\\Adapter\\XML\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"XML","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gc3RyaW5nICRyb290X2VsZW1lbnRfbmFtZSAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aFJvb3RFbGVtZW50TmFtZSgpYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRyb3dfZWxlbWVudF9uYW1lIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoUm93RWxlbWVudE5hbWUoKWAgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIHN0cmluZyAkYXR0cmlidXRlX3ByZWZpeCAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aEF0dHJpYnV0ZVByZWZpeCgpYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRkYXRlX3RpbWVfZm9ybWF0IC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoRGF0ZVRpbWVGb3JtYXQoKWAgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIERPTURvY3VtZW50V3JpdGVyICR4bWxfd3JpdGVyCiAqLw=="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":12,"slug":"protocol","name":"protocol","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Protocol","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":18,"slug":"partition","name":"partition","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Partition","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":24,"slug":"partitions","name":"partitions","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"partition","type":[{"name":"Partition","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Partitions","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":43,"slug":"path","name":"path","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":"LyoqCiAqIFBhdGggc3VwcG9ydHMgZ2xvYiBwYXR0ZXJucy4KICogRXhhbXBsZXM6CiAqICAtIHBhdGgoJyouY3N2JykgLSBhbnkgY3N2IGZpbGUgaW4gY3VycmVudCBkaXJlY3RvcnkKICogIC0gcGF0aCgnLyoqIC8gKi5jc3YnKSAtIGFueSBjc3YgZmlsZSBpbiBhbnkgc3ViZGlyZWN0b3J5IChyZW1vdmUgZW1wdHkgc3BhY2VzKQogKiAgLSBwYXRoKCcvZGlyL3BhcnRpdGlvbj0qIC8qLnBhcnF1ZXQnKSAtIGFueSBwYXJxdWV0IGZpbGUgaW4gZ2l2ZW4gcGFydGl0aW9uIGRpcmVjdG9yeS4KICoKICogR2xvYiBwYXR0ZXJuIGlzIGFsc28gc3VwcG9ydGVkIGJ5IHJlbW90ZSBmaWxlc3lzdGVtcyBsaWtlIEF6dXJlCiAqCiAqICAtIHBhdGgoJ2F6dXJlLWJsb2I6Ly9kaXJlY3RvcnkvKi5jc3YnKSAtIGFueSBjc3YgZmlsZSBpbiBnaXZlbiBkaXJlY3RvcnkKICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbWl4ZWQ+ICRvcHRpb25zCiAqLw=="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":56,"slug":"path-stdout","name":"path_stdout","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHBhdGggdG8gcGhwIHN0ZG91dCBzdHJlYW0uCiAqCiAqIEBwYXJhbSBudWxsfGFycmF5eydzdHJlYW0nOiAnb3V0cHV0J3wnc3RkZXJyJ3wnc3Rkb3V0J30gJG9wdGlvbnMKICoKICogQHJldHVybiBQYXRoCiAqLw=="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":67,"slug":"path-real","name":"path_real","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":"LyoqCiAqIFJlc29sdmUgcmVhbCBwYXRoIGZyb20gZ2l2ZW4gcGF0aC4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbWl4ZWQ+ICRvcHRpb25zCiAqLw=="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":73,"slug":"native-local-filesystem","name":"native_local_filesystem","namespace":"Flow\\Filesystem\\DSL","parameters":[],"return_type":[{"name":"NativeLocalFilesystem","namespace":"Flow\\Filesystem\\Local","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":79,"slug":"stdout-filesystem","name":"stdout_filesystem","namespace":"Flow\\Filesystem\\DSL","parameters":[],"return_type":[{"name":"StdOutFilesystem","namespace":"Flow\\Filesystem\\Local","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":90,"slug":"fstab","name":"fstab","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"filesystems","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"FilesystemTable","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBmaWxlc3lzdGVtIHRhYmxlIHdpdGggZ2l2ZW4gZmlsZXN5c3RlbXMuCiAqIEZpbGVzeXN0ZW1zIGNhbiBiZSBhbHNvIG1vdW50ZWQgbGF0ZXIuCiAqIElmIG5vIGZpbGVzeXN0ZW1zIGFyZSBwcm92aWRlZCwgbG9jYWwgZmlsZXN5c3RlbSBpcyBtb3VudGVkLgogKi8="},{"repository_path":"src\/bridge\/filesystem\/azure\/src\/Flow\/Filesystem\/Bridge\/Azure\/DSL\/functions.php","start_line_in_file":12,"slug":"azure-filesystem-options","name":"azure_filesystem_options","namespace":"Flow\\Filesystem\\Bridge\\Azure\\DSL","parameters":[],"return_type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\Azure","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/azure\/src\/Flow\/Filesystem\/Bridge\/Azure\/DSL\/functions.php","start_line_in_file":18,"slug":"azure-filesystem","name":"azure_filesystem","namespace":"Flow\\Filesystem\\Bridge\\Azure\\DSL","parameters":[{"name":"blob_service","type":[{"name":"BlobServiceInterface","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\Azure","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"AzureBlobFilesystem","namespace":"Flow\\Filesystem\\Bridge\\Azure","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/async-aws\/src\/Flow\/Filesystem\/Bridge\/AsyncAWS\/DSL\/functions.php","start_line_in_file":15,"slug":"aws-s3-client","name":"aws_s3_client","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS\\DSL","parameters":[{"name":"configuration","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"S3Client","namespace":"AsyncAws\\S3","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"S3_FILESYSTEM","type":"HELPER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPiAkY29uZmlndXJhdGlvbiAtIGZvciBkZXRhaWxzIHBsZWFzZSBzZWUgaHR0cHM6Ly9hc3luYy1hd3MuY29tL2NsaWVudHMvczMuaHRtbAogKi8="},{"repository_path":"src\/bridge\/filesystem\/async-aws\/src\/Flow\/Filesystem\/Bridge\/AsyncAWS\/DSL\/functions.php","start_line_in_file":21,"slug":"aws-s3-filesystem","name":"aws_s3_filesystem","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS\\DSL","parameters":[{"name":"bucket","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"s3Client","type":[{"name":"S3Client","namespace":"AsyncAws\\S3","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"AsyncAWSS3Filesystem","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"S3_FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":18,"slug":"azurite-url-factory","name":"azurite_url_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"port","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"secure","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"AzuriteURLFactory","namespace":"Flow\\Azure\\SDK\\BlobService\\URLFactory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":24,"slug":"azure-shared-key-authorization-factory","name":"azure_shared_key_authorization_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"account","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"key","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"SharedKeyFactory","namespace":"Flow\\Azure\\SDK\\AuthorizationFactory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":30,"slug":"azure-blob-service-config","name":"azure_blob_service_config","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"account","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"container","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Configuration","namespace":"Flow\\Azure\\SDK\\BlobService","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":36,"slug":"azure-url-factory","name":"azure_url_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"AzureURLFactory","namespace":"Flow\\Azure\\SDK\\BlobService\\URLFactory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":42,"slug":"azure-http-factory","name":"azure_http_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"request_factory","type":[{"name":"RequestFactoryInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"stream_factory","type":[{"name":"StreamFactoryInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"HttpFactory","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":48,"slug":"azure-blob-service","name":"azure_blob_service","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"configuration","type":[{"name":"Configuration","namespace":"Flow\\Azure\\SDK\\BlobService","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"azure_authorization_factory","type":[{"name":"AuthorizationFactory","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"azure_http_factory","type":[{"name":"HttpFactory","namespace":"Flow\\Azure\\SDK","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"azure_url_factory","type":[{"name":"URLFactory","namespace":"Flow\\Azure\\SDK","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"logger","type":[{"name":"LoggerInterface","namespace":"Psr\\Log","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"BlobServiceInterface","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"doc_comment":null}] \ No newline at end of file +[{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":147,"slug":"df","name":"df","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Flow","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"data_frame"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"overwrite"}}],"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBkYXRhX2ZyYW1lKCkgOiBGbG93LgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":155,"slug":"data-frame","name":"data_frame","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Flow","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"data_frame"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"overwrite"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":163,"slug":"from-rows","name":"from_rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"RowsExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"data_frame"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"overwrite"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":170,"slug":"from-path-partitions","name":"from_path_partitions","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"PathPartitionsExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"partitioning","example":"path_partitions"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":182,"slug":"from-array","name":"from_array","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"iterable","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"ArrayExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_reading","example":"array"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"data_frame"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBpdGVyYWJsZSAkYXJyYXkKICogQHBhcmFtIG51bGx8U2NoZW1hICRzY2hlbWEgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aFNjaGVtYSgpIG1ldGhvZCBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":199,"slug":"from-cache","name":"from_cache","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"id","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"fallback_extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"clear","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"CacheExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBzdHJpbmcgJGlkIC0gY2FjaGUgaWQgZnJvbSB3aGljaCBkYXRhIHdpbGwgYmUgZXh0cmFjdGVkCiAqIEBwYXJhbSBudWxsfEV4dHJhY3RvciAkZmFsbGJhY2tfZXh0cmFjdG9yIC0gZXh0cmFjdG9yIHRoYXQgd2lsbCBiZSB1c2VkIHdoZW4gY2FjaGUgaXMgZW1wdHkgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aEZhbGxiYWNrRXh0cmFjdG9yKCkgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIGJvb2wgJGNsZWFyIC0gY2xlYXIgY2FjaGUgYWZ0ZXIgZXh0cmFjdGlvbiAtIEBkZXByZWNhdGVkIHVzZSB3aXRoQ2xlYXJPbkZpbmlzaCgpIG1ldGhvZCBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":215,"slug":"from-all","name":"from_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"extractors","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"ChainExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":221,"slug":"from-memory","name":"from_memory","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"memory","type":[{"name":"Memory","namespace":"Flow\\ETL\\Memory","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"MemoryExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":227,"slug":"files","name":"files","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"directory","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"FilesExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":233,"slug":"filesystem-cache","name":"filesystem_cache","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"cache_dir","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"serializer","type":[{"name":"Serializer","namespace":"Flow\\Serializer","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"FilesystemCache","namespace":"Flow\\ETL\\Cache\\Implementation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":239,"slug":"chunks-from","name":"chunks_from","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"chunk_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ChunkExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":245,"slug":"from-pipeline","name":"from_pipeline","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pipeline","type":[{"name":"Pipeline","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"PipelineExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":251,"slug":"from-data-frame","name":"from_data_frame","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"data_frame","type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DataFrameExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":257,"slug":"from-sequence-date-period","name":"from_sequence_date_period","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"start","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"end","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"SequenceExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":266,"slug":"from-sequence-date-period-recurrences","name":"from_sequence_date_period_recurrences","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"start","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"recurrences","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"SequenceExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":275,"slug":"from-sequence-number","name":"from_sequence_number","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"start","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"end","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"step","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"SequenceExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":284,"slug":"to-callable","name":"to_callable","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"callable","type":[{"name":"callable","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"CallbackLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":290,"slug":"to-memory","name":"to_memory","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"memory","type":[{"name":"Memory","namespace":"Flow\\ETL\\Memory","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"MemoryLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":302,"slug":"to-array","name":"to_array","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_writing","example":"array"}}],"doc_comment":"LyoqCiAqIENvbnZlcnQgcm93cyB0byBhbiBhcnJheSBhbmQgc3RvcmUgdGhlbSBpbiBwYXNzZWQgYXJyYXkgdmFyaWFibGUuCiAqCiAqIEBwYXJhbS1vdXQgYXJyYXk8YXJyYXk8bWl4ZWQ+PiAkYXJyYXkKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":308,"slug":"to-output","name":"to_output","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":314,"slug":"to-stderr","name":"to_stderr","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":320,"slug":"to-stdout","name":"to_stdout","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":326,"slug":"to-stream","name":"to_stream","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"uri","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"mode","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":332,"slug":"to-transformation","name":"to_transformation","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"loader","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"TransformerLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":338,"slug":"to-branch","name":"to_branch","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"condition","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"loader","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":344,"slug":"bool-entry","name":"bool_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"bool","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"BooleanEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":350,"slug":"boolean-entry","name":"boolean_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"bool","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"BooleanEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":356,"slug":"datetime-entry","name":"datetime_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"DateTimeEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":362,"slug":"time-entry","name":"time_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"TimeEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":368,"slug":"date-entry","name":"date_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"DateEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":374,"slug":"int-entry","name":"int_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"IntegerEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":380,"slug":"integer-entry","name":"integer_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"IntegerEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":386,"slug":"enum-entry","name":"enum_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"enum","type":[{"name":"UnitEnum","namespace":"","is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"EnumEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":392,"slug":"float-entry","name":"float_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"float","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"FloatEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":398,"slug":"json-entry","name":"json_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"JsonEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":407,"slug":"json-object-entry","name":"json_object_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"JsonEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":"LyoqCiAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":417,"slug":"str-entry","name":"str_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"StringEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":433,"slug":"null-entry","name":"null_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StringEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":"LyoqCiAqIFRoaXMgZnVuY3Rpb25zIGlzIGFuIGFsaWFzIGZvciBjcmVhdGluZyBzdHJpbmcgZW50cnkgZnJvbSBudWxsLgogKiBUaGUgbWFpbiBkaWZmZXJlbmNlIGJldHdlZW4gdXNpbmcgdGhpcyBmdW5jdGlvbiBhbiBzaW1wbHkgc3RyX2VudHJ5IHdpdGggc2Vjb25kIGFyZ3VtZW50IG51bGwKICogaXMgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgYWxzbyBrZWVwIGEgbm90ZSBpbiB0aGUgbWV0YWRhdGEgdGhhdCB0eXBlIG1pZ2h0IG5vdCBiZSBmaW5hbC4KICogRm9yIGV4YW1wbGUgd2hlbiB3ZSBuZWVkIHRvIGd1ZXNzIGNvbHVtbiB0eXBlIGZyb20gcm93cyBiZWNhdXNlIHNjaGVtYSB3YXMgbm90IHByb3ZpZGVkLAogKiBhbmQgZ2l2ZW4gY29sdW1uIGluIHRoZSBmaXJzdCByb3cgaXMgbnVsbCwgaXQgbWlnaHQgc3RpbGwgY2hhbmdlIG9uY2Ugd2UgZ2V0IHRvIHRoZSBzZWNvbmQgcm93LgogKiBUaGF0IG1ldGFkYXRhIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHN0cmluZ19lbnRyeSB3YXMgY3JlYXRlZCBmcm9tIG51bGwgb3Igbm90LgogKgogKiBCeSBkZXNpZ24gZmxvdyBhc3N1bWVzIHdoZW4gZ3Vlc3NpbmcgY29sdW1uIHR5cGUgdGhhdCBudWxsIHdvdWxkIGJlIGEgc3RyaW5nICh0aGUgbW9zdCBmbGV4aWJsZSB0eXBlKS4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":439,"slug":"string-entry","name":"string_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"StringEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":445,"slug":"uuid-entry","name":"uuid_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"Uuid","namespace":"Flow\\ETL\\PHP\\Value","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"UuidEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":451,"slug":"xml-entry","name":"xml_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"DOMDocument","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"XMLEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":457,"slug":"xml-element-entry","name":"xml_element_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"DOMElement","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"XMLElementEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":466,"slug":"entries","name":"entries","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entries","type":[{"name":"Entry","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Entries","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBFbnRyeTxtaXhlZCwgbWl4ZWQ+IC4uLiRlbnRyaWVzCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":472,"slug":"struct-entry","name":"struct_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"type","type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":478,"slug":"structure-entry","name":"structure_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"type","type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":487,"slug":"struct-type","name":"struct_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxTdHJ1Y3R1cmVFbGVtZW50PiAkZWxlbWVudHMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":496,"slug":"structure-type","name":"structure_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxTdHJ1Y3R1cmVFbGVtZW50PiAkZWxlbWVudHMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":505,"slug":"type-structure","name":"type_structure","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxTdHJ1Y3R1cmVFbGVtZW50PiAkZWxlbWVudHMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":514,"slug":"struct-element","name":"struct_element","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"Type","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureElement","namespace":"Flow\\ETL\\PHP\\Type\\Logical\\Structure","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkdHlwZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":523,"slug":"structure-element","name":"structure_element","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"Type","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureElement","namespace":"Flow\\ETL\\PHP\\Type\\Logical\\Structure","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkdHlwZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":529,"slug":"list-entry","name":"list_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"type","type":[{"name":"ListType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ListEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":538,"slug":"type-list","name":"type_list","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"element","type":[{"name":"Type","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ListType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkZWxlbWVudAogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":547,"slug":"type-map","name":"type_map","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"key_type","type":[{"name":"IntegerType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false},{"name":"StringType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value_type","type":[{"name":"Type","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"MapType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkdmFsdWVfdHlwZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":553,"slug":"map-entry","name":"map_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"mapType","type":[{"name":"MapType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"MapEntry","namespace":"Flow\\ETL\\Row\\Entry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"ENTRY"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":559,"slug":"type-json","name":"type_json","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"JsonType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":565,"slug":"type-datetime","name":"type_datetime","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DateTimeType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":571,"slug":"type-date","name":"type_date","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DateType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":577,"slug":"type-time","name":"type_time","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"TimeType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":583,"slug":"type-xml","name":"type_xml","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"XMLType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":589,"slug":"type-xml-element","name":"type_xml_element","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"XMLElementType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":595,"slug":"type-uuid","name":"type_uuid","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"UuidType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":601,"slug":"type-int","name":"type_int","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"IntegerType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":607,"slug":"type-integer","name":"type_integer","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"IntegerType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":613,"slug":"type-string","name":"type_string","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StringType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":619,"slug":"type-float","name":"type_float","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"FloatType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":625,"slug":"type-boolean","name":"type_boolean","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"BooleanType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":634,"slug":"type-object","name":"type_object","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ObjectType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBjbGFzcy1zdHJpbmcgJGNsYXNzCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":640,"slug":"type-resource","name":"type_resource","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ResourceType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":646,"slug":"type-array","name":"type_array","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"empty","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":652,"slug":"type-callable","name":"type_callable","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"CallableType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":658,"slug":"type-null","name":"type_null","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"NullType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":667,"slug":"type-enum","name":"type_enum","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"EnumType","namespace":"Flow\\ETL\\PHP\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"TYPE"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBjbGFzcy1zdHJpbmc8XFVuaXRFbnVtPiAkY2xhc3MKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":676,"slug":"row","name":"row","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"Entry","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Row","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBFbnRyeTxtaXhlZCwgbWl4ZWQ+IC4uLiRlbnRyeQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":682,"slug":"rows","name":"rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"row","type":[{"name":"Row","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":688,"slug":"rows-partitioned","name":"rows_partitioned","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"rows","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"partitions","type":[{"name":"Partitions","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":697,"slug":"col","name":"col","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEFuIGFsaWFzIGZvciBgcmVmYC4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":707,"slug":"entry","name":"entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"create_columns"}}],"doc_comment":"LyoqCiAqIEFuIGFsaWFzIGZvciBgcmVmYC4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":714,"slug":"ref","name":"ref","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"create_columns"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":720,"slug":"structure-ref","name":"structure_ref","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"StructureFunctions","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":726,"slug":"list-ref","name":"list_ref","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ListFunctions","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":732,"slug":"refs","name":"refs","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entries","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":738,"slug":"optional","name":"optional","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Optional","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":745,"slug":"lit","name":"lit","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Literal","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_frame","example":"create_columns"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":751,"slug":"exists","name":"exists","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Exists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":757,"slug":"when","name":"when","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"condition","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"then","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"else","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"When","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":763,"slug":"array-get","name":"array_get","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayGet","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":769,"slug":"array-get-collection","name":"array_get_collection","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":775,"slug":"array-get-collection-first","name":"array_get_collection_first","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"keys","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":781,"slug":"array-exists","name":"array_exists","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayPathExists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":787,"slug":"array-merge","name":"array_merge","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"left","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"right","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayMerge","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":793,"slug":"array-merge-collection","name":"array_merge_collection","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayMergeCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":799,"slug":"array-key-rename","name":"array_key_rename","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"newName","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayKeyRename","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":805,"slug":"array-keys-style-convert","name":"array_keys_style_convert","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"style","type":[{"name":"StringStyles","namespace":"Flow\\ETL\\Function\\StyleConverter","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayKeysStyleConvert","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":811,"slug":"array-sort","name":"array_sort","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"sort_function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Sort","namespace":"Flow\\ETL\\Function\\ArraySort","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"recursive","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArraySort","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":821,"slug":"array-reverse","name":"array_reverse","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"preserveKeys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayReverse","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":827,"slug":"now","name":"now","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"time_zone","type":[{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false},{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Now","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":833,"slug":"between","name":"between","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"lower_bound","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"upper_bound","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"boundary","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Boundary","namespace":"Flow\\ETL\\Function\\Between","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Between","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":839,"slug":"to-date-time","name":"to_date_time","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ToDateTime","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":845,"slug":"to-date","name":"to_date","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ToDate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":851,"slug":"date-time-format","name":"date_time_format","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DateTimeFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":857,"slug":"split","name":"split","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Split","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":863,"slug":"combine","name":"combine","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"values","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Combine","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":869,"slug":"concat","name":"concat","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"functions","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Concat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":875,"slug":"hash","name":"hash","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"algorithm","type":[{"name":"Algorithm","namespace":"Flow\\ETL\\Hash","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Hash","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":884,"slug":"cast","name":"cast","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"type","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Type","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Cast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBTY2FsYXJGdW5jdGlvbnxzdHJpbmd8VHlwZTxtaXhlZD4gJHR5cGUKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":890,"slug":"coalesce","name":"coalesce","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Coalesce","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":896,"slug":"count","name":"count","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Count","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":921,"slug":"array-unpack","name":"array_unpack","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"skip_keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"entry_prefix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"ArrayUnpack","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":"LyoqCiAqIFVucGFja3MgZWFjaCBlbGVtZW50IG9mIGFuIGFycmF5IGludG8gYSBuZXcgZW50cnksIHVzaW5nIHRoZSBhcnJheSBrZXkgYXMgdGhlIGVudHJ5IG5hbWUuCiAqCiAqIEJlZm9yZToKICogKy0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rCiAqIHxpZHwgICAgICAgICAgICAgIGFycmF5fAogKiArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICogfCAxfHsiYSI6MSwiYiI6MiwiYyI6M318CiAqIHwgMnx7ImQiOjQsImUiOjUsImYiOjZ9fAogKiArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICoKICogQWZ0ZXI6CiAqICstLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKICogfGlkfGFyci5ifGFyci5jfGFyci5kfGFyci5lfGFyci5mfAogKiArLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCiAqIHwgMXwgICAgMnwgICAgM3wgICAgIHwgICAgIHwgICAgIHwKICogfCAyfCAgICAgfCAgICAgfCAgICA0fCAgICA1fCAgICA2fAogKiArLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":947,"slug":"array-expand","name":"array_expand","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"expand","type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function\\ArrayExpand","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":"LyoqCiAqIEV4cGFuZHMgZWFjaCB2YWx1ZSBpbnRvIGVudHJ5LCBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSB2YWx1ZSwgbXVsdGlwbGUgcm93cyB3aWxsIGJlIGNyZWF0ZWQuCiAqIEFycmF5IGtleXMgYXJlIGlnbm9yZWQsIG9ubHkgdmFsdWVzIGFyZSB1c2VkIHRvIGNyZWF0ZSBuZXcgcm93cy4KICoKICogQmVmb3JlOgogKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKiAgIHxpZHwgICAgICAgICAgICAgIGFycmF5fAogKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKiAgIHwgMXx7ImEiOjEsImIiOjIsImMiOjN9fAogKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKgogKiBBZnRlcjoKICogICArLS0rLS0tLS0tLS0rCiAqICAgfGlkfGV4cGFuZGVkfAogKiAgICstLSstLS0tLS0tLSsKICogICB8IDF8ICAgICAgIDF8CiAqICAgfCAxfCAgICAgICAyfAogKiAgIHwgMXwgICAgICAgM3wKICogICArLS0rLS0tLS0tLS0rCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":953,"slug":"size","name":"size","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Size","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":959,"slug":"uuid-v4","name":"uuid_v4","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Uuid","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":965,"slug":"uuid-v7","name":"uuid_v7","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Uuid","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":971,"slug":"ulid","name":"ulid","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Ulid","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":977,"slug":"lower","name":"lower","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ToLower","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":983,"slug":"capitalize","name":"capitalize","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Capitalize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":989,"slug":"upper","name":"upper","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ToUpper","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":995,"slug":"all","name":"all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"functions","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1001,"slug":"any","name":"any","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1007,"slug":"not","name":"not","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Not","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1013,"slug":"to-timezone","name":"to_timezone","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ToTimeZone","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1019,"slug":"ignore-error-handler","name":"ignore_error_handler","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"IgnoreError","namespace":"Flow\\ETL\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1025,"slug":"skip-rows-handler","name":"skip_rows_handler","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SkipRows","namespace":"Flow\\ETL\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1031,"slug":"throw-error-handler","name":"throw_error_handler","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"ThrowError","namespace":"Flow\\ETL\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1037,"slug":"regex-replace","name":"regex_replace","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"replacement","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"RegexReplace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1043,"slug":"regex-match-all","name":"regex_match_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"RegexMatchAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1049,"slug":"regex-match","name":"regex_match","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"RegexMatch","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1055,"slug":"regex","name":"regex","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Regex","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1061,"slug":"regex-all","name":"regex_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"RegexAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1067,"slug":"sprintf","name":"sprintf","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"args","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true}],"return_type":[{"name":"Sprintf","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1073,"slug":"sanitize","name":"sanitize","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"placeholder","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"skipCharacters","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Sanitize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1079,"slug":"round","name":"round","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"precision","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"mode","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Round","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1085,"slug":"number-format","name":"number_format","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"decimals","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"decimal_separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"thousands_separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"NumberFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1096,"slug":"to-entry","name":"to_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"data","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false},{"name":"entryFactory","type":[{"name":"EntryFactory","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Entry","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxtaXhlZD4gJGRhdGEKICoKICogQHJldHVybiBFbnRyeTxtaXhlZCwgbWl4ZWQ+CiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1106,"slug":"array-to-row","name":"array_to_row","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"entryFactory","type":[{"name":"EntryFactory","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"partitions","type":[{"name":"Partitions","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Row","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheTxtaXhlZD4+fGFycmF5PG1peGVkfHN0cmluZz4gJGRhdGEKICogQHBhcmFtIGFycmF5PFBhcnRpdGlvbj58UGFydGl0aW9ucyAkcGFydGl0aW9ucwogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1150,"slug":"array-to-rows","name":"array_to_rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"entryFactory","type":[{"name":"EntryFactory","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"partitions","type":[{"name":"Partitions","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheTxtaXhlZD4+fGFycmF5PG1peGVkfHN0cmluZz4gJGRhdGEKICogQHBhcmFtIGFycmF5PFBhcnRpdGlvbj58UGFydGl0aW9ucyAkcGFydGl0aW9ucwogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1178,"slug":"rank","name":"rank","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Rank","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"WINDOW_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1184,"slug":"dens-rank","name":"dens_rank","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"DenseRank","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"WINDOW_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1190,"slug":"dense-rank","name":"dense_rank","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"DenseRank","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"WINDOW_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1196,"slug":"average","name":"average","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Average","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1202,"slug":"greatest","name":"greatest","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true}],"return_type":[{"name":"Greatest","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1208,"slug":"least","name":"least","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true}],"return_type":[{"name":"Least","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1214,"slug":"collect","name":"collect","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Collect","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1220,"slug":"collect-unique","name":"collect_unique","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"CollectUnique","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1226,"slug":"window","name":"window","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Window","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1232,"slug":"sum","name":"sum","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Sum","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1238,"slug":"first","name":"first","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"First","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1244,"slug":"last","name":"last","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Last","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1250,"slug":"max","name":"max","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Max","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1256,"slug":"min","name":"min","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Min","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1262,"slug":"row-number","name":"row_number","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"RowNumber","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1268,"slug":"schema","name":"schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"definitions","type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1274,"slug":"schema-to-json","name":"schema_to_json","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"json_flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1283,"slug":"schema-from-json","name":"schema_from_json","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1289,"slug":"schema-strict-matcher","name":"schema_strict_matcher","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"StrictSchemaMatcher","namespace":"Flow\\ETL\\Row\\Schema\\Matcher","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1295,"slug":"schema-evolving-matcher","name":"schema_evolving_matcher","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"EvolvingSchemaMatcher","namespace":"Flow\\ETL\\Row\\Schema\\Matcher","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1304,"slug":"int-schema","name":"int_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBgaW50X3NjaGVtYWAuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1310,"slug":"integer-schema","name":"integer_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1319,"slug":"str-schema","name":"str_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBgc3RyaW5nX3NjaGVtYWAuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1325,"slug":"string-schema","name":"string_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1331,"slug":"bool-schema","name":"bool_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1337,"slug":"float-schema","name":"float_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1343,"slug":"map-schema","name":"map_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"MapType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1349,"slug":"list-schema","name":"list_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"ListType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1358,"slug":"enum-schema","name":"enum_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBjbGFzcy1zdHJpbmc8XFVuaXRFbnVtPiAkdHlwZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1364,"slug":"null-schema","name":"null_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1370,"slug":"datetime-schema","name":"datetime_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1376,"slug":"time-schema","name":"time_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1382,"slug":"date-schema","name":"date_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1388,"slug":"json-schema","name":"json_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1394,"slug":"xml-schema","name":"xml_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1400,"slug":"xml-element-schema","name":"xml_element_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1406,"slug":"struct-schema","name":"struct_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1412,"slug":"structure-schema","name":"structure_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"type","type":[{"name":"StructureType","namespace":"Flow\\ETL\\PHP\\Type\\Logical","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1418,"slug":"uuid-schema","name":"uuid_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1424,"slug":"execution-context","name":"execution_context","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"FlowContext","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1430,"slug":"flow-context","name":"flow_context","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"FlowContext","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1436,"slug":"config","name":"config","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1442,"slug":"config-builder","name":"config_builder","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1448,"slug":"overwrite","name":"overwrite","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1454,"slug":"ignore","name":"ignore","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1460,"slug":"exception-if-exists","name":"exception_if_exists","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1466,"slug":"append","name":"append","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1475,"slug":"get-type","name":"get_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Type","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEByZXR1cm4gVHlwZTxtaXhlZD4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1481,"slug":"print-schema","name":"print_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"formatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Row\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1487,"slug":"print-rows","name":"print_rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1493,"slug":"identical","name":"identical","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"left","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"right","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Identical","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1499,"slug":"equal","name":"equal","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"left","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"right","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Equal","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1505,"slug":"compare-all","name":"compare_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"comparisons","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1511,"slug":"compare-any","name":"compare_any","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"comparisons","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1519,"slug":"join-on","name":"join_on","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"comparisons","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"join_prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Expression","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"join","example":"join"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"join","example":"join_each"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1525,"slug":"compare-entries-by-name","name":"compare_entries_by_name","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"order","type":[{"name":"Order","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Comparator","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1531,"slug":"compare-entries-by-name-desc","name":"compare_entries_by_name_desc","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Comparator","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1540,"slug":"compare-entries-by-type","name":"compare_entries_by_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"priorities","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"order","type":[{"name":"Order","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Comparator","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxjbGFzcy1zdHJpbmc8RW50cnk8bWl4ZWQsIG1peGVkPj4sIGludD4gJHByaW9yaXRpZXMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1549,"slug":"compare-entries-by-type-desc","name":"compare_entries_by_type_desc","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"priorities","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Comparator","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxjbGFzcy1zdHJpbmc8RW50cnk8bWl4ZWQsIG1peGVkPj4sIGludD4gJHByaW9yaXRpZXMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1558,"slug":"compare-entries-by-type-and-name","name":"compare_entries_by_type_and_name","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"priorities","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"order","type":[{"name":"Order","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Comparator","namespace":"Flow\\ETL\\Transformer\\OrderEntries","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxjbGFzcy1zdHJpbmc8RW50cnk8bWl4ZWQsIG1peGVkPj4sIGludD4gJHByaW9yaXRpZXMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1571,"slug":"is-type","name":"is_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmd8VHlwZTxtaXhlZD4+ICR0eXBlcwogKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1601,"slug":"generate-random-string","name":"generate_random_string","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"generator","type":[{"name":"NativePHPRandomValueGenerator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1607,"slug":"generate-random-int","name":"generate_random_int","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"start","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"end","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"generator","type":[{"name":"NativePHPRandomValueGenerator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1613,"slug":"random-string","name":"random_string","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"length","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"generator","type":[{"name":"RandomValueGenerator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"RandomString","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1621,"slug":"dom-element-to-string","name":"dom_element_to_string","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"element","type":[{"name":"DOMElement","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"format_output","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"preserver_white_space","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"false","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1634,"slug":"date-interval-to-milliseconds","name":"date_interval_to_milliseconds","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1651,"slug":"date-interval-to-seconds","name":"date_interval_to_seconds","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1668,"slug":"date-interval-to-microseconds","name":"date_interval_to_microseconds","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1685,"slug":"caster-options","name":"caster_options","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Options","namespace":"Flow\\ETL\\PHP\\Type\\Caster","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1701,"slug":"caster","name":"caster","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"options","type":[{"name":"Options","namespace":"Flow\\ETL\\PHP\\Type\\Caster","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Caster","namespace":"Flow\\ETL\\PHP\\Type","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"doc_comment":"LyoqCiAqIEFkdmFuY2VkIHR5cGUgY2FzdGluZyBtZWNoYW5pc20uCiAqIFVzYWdlOgogKgogKiBjYXN0ZXIoKS0+dG8odHlwZV9mbG9hdChwcmVjaXNpb246IDIpKS0+dmFsdWUoIjEuMTIzNCIpIC8vIDEuMTIKICoKICogT3B0aW9ucyBjYW4gYmUgYWxzbyBwYXNzZWQgdG8gInRvIiBmdW5jdGlvbiB0byBvdmVycmlkZSBkZWZhdWx0IG9wdGlvbnMuCiAqCiAqIGNhc3RlcigpLT50byh0eXBlX2Zsb2F0KHByZWNpc2lvbjogMiksIGNhc3Rlcl9vcHRpb25zKCkpLT52YWx1ZSgiMS4xMjM0IikgLy8gMS4xMgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":13,"slug":"bar-chart","name":"bar_chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"label","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"datasets","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"BarChart","namespace":"Flow\\ETL\\Adapter\\ChartJS\\Chart","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CHART_JS","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":19,"slug":"line-chart","name":"line_chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"label","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"datasets","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"LineChart","namespace":"Flow\\ETL\\Adapter\\ChartJS\\Chart","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CHART_JS","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":25,"slug":"pie-chart","name":"pie_chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"label","type":[{"name":"EntryReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"datasets","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"PieChart","namespace":"Flow\\ETL\\Adapter\\ChartJS\\Chart","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CHART_JS","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":31,"slug":"to-chartjs","name":"to_chartjs","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"type","type":[{"name":"Chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ChartJSLoader","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CHART_JS","type":"LOADER"}}],"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":42,"slug":"to-chartjs-file","name":"to_chartjs_file","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"type","type":[{"name":"Chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"output","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"template","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"ChartJSLoader","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CHART_JS","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBDaGFydCAkdHlwZQogKiBAcGFyYW0gbnVsbHxQYXRofHN0cmluZyAkb3V0cHV0IC0gQGRlcHJlY2F0ZWQgdXNlICRsb2FkZXItPndpdGhPdXRwdXRQYXRoKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxQYXRofHN0cmluZyAkdGVtcGxhdGUgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aFRlbXBsYXRlKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":70,"slug":"to-chartjs-var","name":"to_chartjs_var","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"type","type":[{"name":"Chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"output","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ChartJSLoader","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CHART_JS","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBDaGFydCAkdHlwZQogKiBAcGFyYW0gYXJyYXkgJG91dHB1dCAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoT3V0cHV0VmFyKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-csv\/src\/Flow\/ETL\/Adapter\/CSV\/functions.php","start_line_in_file":28,"slug":"from-csv","name":"from_csv","namespace":"Flow\\ETL\\Adapter\\CSV","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"empty_to_null","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"separator","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"enclosure","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"escape","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"characters_read_in_line","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"CSVExtractor","namespace":"Flow\\ETL\\Adapter\\CSV","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CSV","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_reading","example":"csv"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gYm9vbCAkZW1wdHlfdG9fbnVsbCAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRW1wdHlUb051bGwoKSBpbnN0ZWFkCiAqIEBwYXJhbSBib29sICR3aXRoX2hlYWRlciAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoSGVhZGVyKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHNlcGFyYXRvciAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoU2VwYXJhdG9yKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGVuY2xvc3VyZSAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRW5jbG9zdXJlKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGVzY2FwZSAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRXNjYXBlKCkgaW5zdGVhZAogKiBAcGFyYW0gaW50PDEsIG1heD4gJGNoYXJhY3RlcnNfcmVhZF9pbl9saW5lIC0gQGRlcHJlY2F0ZWQgdXNlICRsb2FkZXItPndpdGhDaGFyYWN0ZXJzUmVhZEluTGluZSgpIGluc3RlYWQKICogQHBhcmFtIG51bGx8U2NoZW1hICRzY2hlbWEgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aFNjaGVtYSgpIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-csv\/src\/Flow\/ETL\/Adapter\/CSV\/functions.php","start_line_in_file":73,"slug":"to-csv","name":"to_csv","namespace":"Flow\\ETL\\Adapter\\CSV","parameters":[{"name":"uri","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"enclosure","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"escape","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"new_line_separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"datetime_format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"CSVLoader","namespace":"Flow\\ETL\\Adapter\\CSV","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CSV","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkdXJpCiAqIEBwYXJhbSBib29sICR3aXRoX2hlYWRlciAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoSGVhZGVyKCkgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRzZXBhcmF0b3IgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aFNlcGFyYXRvcigpIGluc3RlYWQKICogQHBhcmFtIHN0cmluZyAkZW5jbG9zdXJlIC0gQGRlcHJlY2F0ZWQgdXNlICRsb2FkZXItPndpdGhFbmNsb3N1cmUoKSBpbnN0ZWFkCiAqIEBwYXJhbSBzdHJpbmcgJGVzY2FwZSAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRXNjYXBlKCkgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRuZXdfbGluZV9zZXBhcmF0b3IgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aE5ld0xpbmVTZXBhcmF0b3IoKSBpbnN0ZWFkCiAqIEBwYXJhbSBzdHJpbmcgJGRhdGV0aW1lX2Zvcm1hdCAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRGF0ZVRpbWVGb3JtYXQoKSBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-csv\/src\/Flow\/ETL\/Adapter\/CSV\/functions.php","start_line_in_file":98,"slug":"csv-detect-separator","name":"csv_detect_separator","namespace":"Flow\\ETL\\Adapter\\CSV","parameters":[{"name":"stream","type":[{"name":"SourceStream","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"lines","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"fallback","type":[{"name":"Option","namespace":"Flow\\ETL\\Adapter\\CSV\\Detector","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"options","type":[{"name":"Options","namespace":"Flow\\ETL\\Adapter\\CSV\\Detector","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Option","namespace":"Flow\\ETL\\Adapter\\CSV\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"CSV","type":"HELPER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBTb3VyY2VTdHJlYW0gJHN0cmVhbSAtIHZhbGlkIHJlc291cmNlIHRvIENTViBmaWxlCiAqIEBwYXJhbSBpbnQ8MSwgbWF4PiAkbGluZXMgLSBudW1iZXIgb2YgbGluZXMgdG8gcmVhZCBmcm9tIENTViBmaWxlLCBkZWZhdWx0IDUsIG1vcmUgbGluZXMgbWVhbnMgbW9yZSBhY2N1cmF0ZSBkZXRlY3Rpb24gYnV0IHNsb3dlciBkZXRlY3Rpb24KICogQHBhcmFtIG51bGx8T3B0aW9uICRmYWxsYmFjayAtIGZhbGxiYWNrIG9wdGlvbiB0byB1c2Ugd2hlbiBubyBiZXN0IG9wdGlvbiBjYW4gYmUgZGV0ZWN0ZWQsIGRlZmF1bHQgaXMgT3B0aW9uKCcsJywgJyInLCAnXFwnKQogKiBAcGFyYW0gbnVsbHxPcHRpb25zICRvcHRpb25zIC0gb3B0aW9ucyB0byB1c2UgZm9yIGRldGVjdGlvbiwgZGVmYXVsdCBpcyBPcHRpb25zOjphbGwoKQogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":22,"slug":"dbal-dataframe-factory","name":"dbal_dataframe_factory","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters","type":[{"name":"QueryParameter","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"DbalDataFrameFactory","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5CiAqIEBwYXJhbSBRdWVyeVBhcmFtZXRlciAuLi4kcGFyYW1ldGVycwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":42,"slug":"from-dbal-limit-offset","name":"from_dbal_limit_offset","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"table","type":[{"name":"Table","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"order_by","type":[{"name":"OrderBy","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"page_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"maximum","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"DbalLimitOffsetExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBzdHJpbmd8VGFibGUgJHRhYmxlCiAqIEBwYXJhbSBhcnJheTxPcmRlckJ5PnxPcmRlckJ5ICRvcmRlcl9ieQogKiBAcGFyYW0gaW50ICRwYWdlX3NpemUKICogQHBhcmFtIG51bGx8aW50ICRtYXhpbXVtCiAqCiAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":68,"slug":"from-dbal-limit-offset-qb","name":"from_dbal_limit_offset_qb","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"queryBuilder","type":[{"name":"QueryBuilder","namespace":"Doctrine\\DBAL\\Query","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"page_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"maximum","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"DbalLimitOffsetExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBpbnQgJHBhZ2Vfc2l6ZQogKiBAcGFyYW0gbnVsbHxpbnQgJG1heGltdW0KICov"},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":91,"slug":"from-dbal-queries","name":"from_dbal_queries","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters_set","type":[{"name":"ParametersSet","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBudWxsfFBhcmFtZXRlcnNTZXQgJHBhcmFtZXRlcnNfc2V0IC0gZWFjaCBvbmUgcGFyYW1ldGVycyBhcnJheSB3aWxsIGJlIGV2YWx1YXRlZCBhcyBuZXcgcXVlcnkKICogQHBhcmFtIGFycmF5PGludHxzdHJpbmcsIERiYWxBcnJheVR5cGV8RGJhbFBhcmFtZXRlclR5cGV8RGJhbFR5cGV8aW50fHN0cmluZz4gJHR5cGVzCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":120,"slug":"dbal-from-queries","name":"dbal_from_queries","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters_set","type":[{"name":"ParametersSet","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBkZXByZWNhdGVkIHVzZSBmcm9tX2RiYWxfcXVlcmllcygpIGluc3RlYWQKICoKICogQHBhcmFtIG51bGx8UGFyYW1ldGVyc1NldCAkcGFyYW1ldGVyc19zZXQgLSBlYWNoIG9uZSBwYXJhbWV0ZXJzIGFycmF5IHdpbGwgYmUgZXZhbHVhdGVkIGFzIG5ldyBxdWVyeQogKiBAcGFyYW0gYXJyYXk8aW50fHN0cmluZywgRGJhbEFycmF5VHlwZXxEYmFsUGFyYW1ldGVyVHlwZXxEYmFsVHlwZXxpbnR8c3RyaW5nPiAkdHlwZXMKICov"},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":134,"slug":"from-dbal-query","name":"from_dbal_query","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxsaXN0PG1peGVkPiAkcGFyYW1ldGVycyAtIEBkZXByZWNhdGVkIHVzZSBEYmFsUXVlcnlFeHRyYWN0b3I6OndpdGhQYXJhbWV0ZXJzKCkgaW5zdGVhZAogKiBAcGFyYW0gYXJyYXk8aW50fHN0cmluZywgRGJhbEFycmF5VHlwZXxEYmFsUGFyYW1ldGVyVHlwZXxEYmFsVHlwZXxpbnR8c3RyaW5nPiAkdHlwZXMgLSBAZGVwcmVjYXRlZCB1c2UgRGJhbFF1ZXJ5RXh0cmFjdG9yOjp3aXRoVHlwZXMoKSBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":155,"slug":"dbal-from-query","name":"dbal_from_query","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBkZXByZWNhdGVkIHVzZSBmcm9tX2RiYWxfcXVlcnkoKSBpbnN0ZWFkCiAqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxsaXN0PG1peGVkPiAkcGFyYW1ldGVycyAtIEBkZXByZWNhdGVkIHVzZSBEYmFsUXVlcnlFeHRyYWN0b3I6OndpdGhQYXJhbWV0ZXJzKCkgaW5zdGVhZAogKiBAcGFyYW0gYXJyYXk8aW50fHN0cmluZywgRGJhbEFycmF5VHlwZXxEYmFsUGFyYW1ldGVyVHlwZXxEYmFsVHlwZXxpbnR8c3RyaW5nPiAkdHlwZXMgLSBAZGVwcmVjYXRlZCB1c2UgRGJhbFF1ZXJ5RXh0cmFjdG9yOjp3aXRoVHlwZXMoKSBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":179,"slug":"to-dbal-table-insert","name":"to_dbal_table_insert","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DbalLoader","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEluIG9yZGVyIHRvIGNvbnRyb2wgdGhlIHNpemUgb2YgdGhlIHNpbmdsZSBpbnNlcnQsIHVzZSBEYXRhRnJhbWU6OmNodW5rU2l6ZSgpIG1ldGhvZCBqdXN0IGJlZm9yZSBjYWxsaW5nIERhdGFGcmFtZTo6bG9hZCgpLgogKgogKiBAcGFyYW0gYXJyYXk8c3RyaW5nLCBtaXhlZD58Q29ubmVjdGlvbiAkY29ubmVjdGlvbgogKiBAcGFyYW0gYXJyYXl7CiAqICBza2lwX2NvbmZsaWN0cz86IGJvb2xlYW4sCiAqICBjb25zdHJhaW50Pzogc3RyaW5nLAogKiAgY29uZmxpY3RfY29sdW1ucz86IGFycmF5PHN0cmluZz4sCiAqICB1cGRhdGVfY29sdW1ucz86IGFycmF5PHN0cmluZz4sCiAqICBwcmltYXJ5X2tleV9jb2x1bW5zPzogYXJyYXk8c3RyaW5nPgogKiB9ICRvcHRpb25zIC0gQGRlcHJlY2F0ZWQgdXNlIERiYWxMb2FkZXI6OndpdGhPcGVyYXRpb25PcHRpb25zKCkgaW5zdGVhZAogKgogKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":204,"slug":"to-dbal-table-update","name":"to_dbal_table_update","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"DbalLoader","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"DOCTRINE","type":"LOADER"}}],"doc_comment":"LyoqCiAqICBJbiBvcmRlciB0byBjb250cm9sIHRoZSBzaXplIG9mIHRoZSBzaW5nbGUgcmVxdWVzdCwgdXNlIERhdGFGcmFtZTo6Y2h1bmtTaXplKCkgbWV0aG9kIGp1c3QgYmVmb3JlIGNhbGxpbmcgRGF0YUZyYW1lOjpsb2FkKCkuCiAqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBhcnJheXsKICogIHNraXBfY29uZmxpY3RzPzogYm9vbGVhbiwKICogIGNvbnN0cmFpbnQ\/OiBzdHJpbmcsCiAqICBjb25mbGljdF9jb2x1bW5zPzogYXJyYXk8c3RyaW5nPiwKICogIHVwZGF0ZV9jb2x1bW5zPzogYXJyYXk8c3RyaW5nPiwKICogIHByaW1hcnlfa2V5X2NvbHVtbnM\/OiBhcnJheTxzdHJpbmc+CiAqIH0gJG9wdGlvbnMgLSBAZGVwcmVjYXRlZCB1c2UgRGJhbExvYWRlcjo6d2l0aE9wZXJhdGlvbk9wdGlvbnMoKSBpbnN0ZWFkCiAqCiAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-elasticsearch\/src\/Flow\/ETL\/Adapter\/Elasticsearch\/functions.php","start_line_in_file":32,"slug":"to-es-bulk-index","name":"to_es_bulk_index","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","parameters":[{"name":"config","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"id_factory","type":[{"name":"IdFactory","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ElasticsearchLoader","namespace":"Flow\\ETL\\Adapter\\Elasticsearch\\ElasticsearchPHP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"ELASTIC_SEARCH","type":"LOADER"}}],"doc_comment":"LyoqCiAqIGh0dHBzOi8vd3d3LmVsYXN0aWMuY28vZ3VpZGUvZW4vZWxhc3RpY3NlYXJjaC9yZWZlcmVuY2UvbWFzdGVyL2RvY3MtYnVsay5odG1sLgogKgogKiBJbiBvcmRlciB0byBjb250cm9sIHRoZSBzaXplIG9mIHRoZSBzaW5nbGUgcmVxdWVzdCwgdXNlIERhdGFGcmFtZTo6Y2h1bmtTaXplKCkgbWV0aG9kIGp1c3QgYmVmb3JlIGNhbGxpbmcgRGF0YUZyYW1lOjpsb2FkKCkuCiAqCiAqIEBwYXJhbSBhcnJheXsKICogIGhvc3RzPzogYXJyYXk8c3RyaW5nPiwKICogIGNvbm5lY3Rpb25QYXJhbXM\/OiBhcnJheTxtaXhlZD4sCiAqICByZXRyaWVzPzogaW50LAogKiAgc25pZmZPblN0YXJ0PzogYm9vbGVhbiwKICogIHNzbENlcnQ\/OiBhcnJheTxzdHJpbmc+LAogKiAgc3NsS2V5PzogYXJyYXk8c3RyaW5nPiwKICogIHNzbFZlcmlmaWNhdGlvbj86IGJvb2xlYW58c3RyaW5nLAogKiAgZWxhc3RpY01ldGFIZWFkZXI\/OiBib29sZWFuLAogKiAgaW5jbHVkZVBvcnRJbkhvc3RIZWFkZXI\/OiBib29sZWFuCiAqIH0gJGNvbmZpZwogKiBAcGFyYW0gc3RyaW5nICRpbmRleAogKiBAcGFyYW0gSWRGYWN0b3J5ICRpZF9mYWN0b3J5CiAqIEBwYXJhbSBhcnJheTxtaXhlZD4gJHBhcmFtZXRlcnMgLSBodHRwczovL3d3dy5lbGFzdGljLmNvL2d1aWRlL2VuL2VsYXN0aWNzZWFyY2gvcmVmZXJlbmNlL21hc3Rlci9kb2NzLWJ1bGsuaHRtbCAtIEBkZXByZWNhdGVkIHVzZSB3aXRoUGFyYW1ldGVycyBtZXRob2QgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-elasticsearch\/src\/Flow\/ETL\/Adapter\/Elasticsearch\/functions.php","start_line_in_file":42,"slug":"entry-id-factory","name":"entry_id_factory","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","parameters":[{"name":"entry_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"IdFactory","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"ELASTIC_SEARCH","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-elasticsearch\/src\/Flow\/ETL\/Adapter\/Elasticsearch\/functions.php","start_line_in_file":48,"slug":"hash-id-factory","name":"hash_id_factory","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","parameters":[{"name":"entry_names","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"IdFactory","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"ELASTIC_SEARCH","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-elasticsearch\/src\/Flow\/ETL\/Adapter\/Elasticsearch\/functions.php","start_line_in_file":74,"slug":"to-es-bulk-update","name":"to_es_bulk_update","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","parameters":[{"name":"config","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"id_factory","type":[{"name":"IdFactory","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"ElasticsearchLoader","namespace":"Flow\\ETL\\Adapter\\Elasticsearch\\ElasticsearchPHP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"ELASTIC_SEARCH","type":"LOADER"}}],"doc_comment":"LyoqCiAqICBodHRwczovL3d3dy5lbGFzdGljLmNvL2d1aWRlL2VuL2VsYXN0aWNzZWFyY2gvcmVmZXJlbmNlL21hc3Rlci9kb2NzLWJ1bGsuaHRtbC4KICoKICogSW4gb3JkZXIgdG8gY29udHJvbCB0aGUgc2l6ZSBvZiB0aGUgc2luZ2xlIHJlcXVlc3QsIHVzZSBEYXRhRnJhbWU6OmNodW5rU2l6ZSgpIG1ldGhvZCBqdXN0IGJlZm9yZSBjYWxsaW5nIERhdGFGcmFtZTo6bG9hZCgpLgogKgogKiBAcGFyYW0gYXJyYXl7CiAqICBob3N0cz86IGFycmF5PHN0cmluZz4sCiAqICBjb25uZWN0aW9uUGFyYW1zPzogYXJyYXk8bWl4ZWQ+LAogKiAgcmV0cmllcz86IGludCwKICogIHNuaWZmT25TdGFydD86IGJvb2xlYW4sCiAqICBzc2xDZXJ0PzogYXJyYXk8c3RyaW5nPiwKICogIHNzbEtleT86IGFycmF5PHN0cmluZz4sCiAqICBzc2xWZXJpZmljYXRpb24\/OiBib29sZWFufHN0cmluZywKICogIGVsYXN0aWNNZXRhSGVhZGVyPzogYm9vbGVhbiwKICogIGluY2x1ZGVQb3J0SW5Ib3N0SGVhZGVyPzogYm9vbGVhbgogKiB9ICRjb25maWcKICogQHBhcmFtIHN0cmluZyAkaW5kZXgKICogQHBhcmFtIElkRmFjdG9yeSAkaWRfZmFjdG9yeQogKiBAcGFyYW0gYXJyYXk8bWl4ZWQ+ICRwYXJhbWV0ZXJzIC0gaHR0cHM6Ly93d3cuZWxhc3RpYy5jby9ndWlkZS9lbi9lbGFzdGljc2VhcmNoL3JlZmVyZW5jZS9tYXN0ZXIvZG9jcy1idWxrLmh0bWwgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aFBhcmFtZXRlcnMgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-elasticsearch\/src\/Flow\/ETL\/Adapter\/Elasticsearch\/functions.php","start_line_in_file":89,"slug":"es-hits-to-rows","name":"es_hits_to_rows","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","parameters":[{"name":"source","type":[{"name":"DocumentDataSource","namespace":"Flow\\ETL\\Adapter\\Elasticsearch\\ElasticsearchPHP","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"HitsIntoRowsTransformer","namespace":"Flow\\ETL\\Adapter\\Elasticsearch\\ElasticsearchPHP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"ELASTIC_SEARCH","type":"HELPER"}}],"doc_comment":"LyoqCiAqIFRyYW5zZm9ybXMgZWxhc3RpY3NlYXJjaCByZXN1bHRzIGludG8gY2xlYXIgRmxvdyBSb3dzIHVzaW5nIFsnaGl0cyddWydoaXRzJ11beF1bJ19zb3VyY2UnXS4KICoKICogQHJldHVybiBIaXRzSW50b1Jvd3NUcmFuc2Zvcm1lcgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-elasticsearch\/src\/Flow\/ETL\/Adapter\/Elasticsearch\/functions.php","start_line_in_file":117,"slug":"from-es","name":"from_es","namespace":"Flow\\ETL\\Adapter\\Elasticsearch","parameters":[{"name":"config","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"pit_params","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"ElasticsearchExtractor","namespace":"Flow\\ETL\\Adapter\\Elasticsearch\\ElasticsearchPHP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"ELASTIC_SEARCH","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEV4dHJhY3RvciB3aWxsIGF1dG9tYXRpY2FsbHkgdHJ5IHRvIGl0ZXJhdGUgb3ZlciB3aG9sZSBpbmRleCB1c2luZyBvbmUgb2YgdGhlIHR3byBpdGVyYXRpb24gbWV0aG9kczouCiAqCiAqIC0gZnJvbS9zaXplCiAqIC0gc2VhcmNoX2FmdGVyCiAqCiAqIFNlYXJjaCBhZnRlciBpcyBzZWxlY3RlZCB3aGVuIHlvdSBwcm92aWRlIGRlZmluZSBzb3J0IHBhcmFtZXRlcnMgaW4gcXVlcnksIG90aGVyd2lzZSBpdCB3aWxsIGZhbGxiYWNrIHRvIGZyb20vc2l6ZS4KICoKICogQHBhcmFtIGFycmF5ewogKiAgaG9zdHM\/OiBhcnJheTxzdHJpbmc+LAogKiAgY29ubmVjdGlvblBhcmFtcz86IGFycmF5PG1peGVkPiwKICogIHJldHJpZXM\/OiBpbnQsCiAqICBzbmlmZk9uU3RhcnQ\/OiBib29sZWFuLAogKiAgc3NsQ2VydD86IGFycmF5PHN0cmluZz4sCiAqICBzc2xLZXk\/OiBhcnJheTxzdHJpbmc+LAogKiAgc3NsVmVyaWZpY2F0aW9uPzogYm9vbGVhbnxzdHJpbmcsCiAqICBlbGFzdGljTWV0YUhlYWRlcj86IGJvb2xlYW4sCiAqICBpbmNsdWRlUG9ydEluSG9zdEhlYWRlcj86IGJvb2xlYW4KICogfSAkY29uZmlnCiAqIEBwYXJhbSBhcnJheTxtaXhlZD4gJHBhcmFtZXRlcnMgLSBodHRwczovL3d3dy5lbGFzdGljLmNvL2d1aWRlL2VuL2VsYXN0aWNzZWFyY2gvcmVmZXJlbmNlL21hc3Rlci9zZWFyY2gtc2VhcmNoLmh0bWwKICogQHBhcmFtID9hcnJheTxtaXhlZD4gJHBpdF9wYXJhbXMgLSB3aGVuIHVzZWQgZXh0cmFjdG9yIHdpbGwgY3JlYXRlIHBvaW50IGluIHRpbWUgdG8gc3RhYmlsaXplIHNlYXJjaCByZXN1bHRzLiBQb2ludCBpbiB0aW1lIGlzIGF1dG9tYXRpY2FsbHkgY2xvc2VkIHdoZW4gbGFzdCBlbGVtZW50IGlzIGV4dHJhY3RlZC4gaHR0cHM6Ly93d3cuZWxhc3RpYy5jby9ndWlkZS9lbi9lbGFzdGljc2VhcmNoL3JlZmVyZW5jZS9tYXN0ZXIvcG9pbnQtaW4tdGltZS1hcGkuaHRtbCAtIEBkZXByZWNhdGVkIHVzZSB3aXRoUG9pbnRJblRpbWUgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-google-sheet\/src\/Flow\/ETL\/Adapter\/GoogleSheet\/functions.php","start_line_in_file":21,"slug":"from-google-sheet","name":"from_google_sheet","namespace":"Flow\\ETL\\Adapter\\GoogleSheet","parameters":[{"name":"auth_config","type":[{"name":"Sheets","namespace":"Google\\Service","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"spreadsheet_id","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"sheet_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"rows_per_page","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"GOOGLE_SHEET","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt0eXBlOiBzdHJpbmcsIHByb2plY3RfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXlfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXk6IHN0cmluZywgY2xpZW50X2VtYWlsOiBzdHJpbmcsIGNsaWVudF9pZDogc3RyaW5nLCBhdXRoX3VyaTogc3RyaW5nLCB0b2tlbl91cmk6IHN0cmluZywgYXV0aF9wcm92aWRlcl94NTA5X2NlcnRfdXJsOiBzdHJpbmcsIGNsaWVudF94NTA5X2NlcnRfdXJsOiBzdHJpbmd9fFNoZWV0cyAkYXV0aF9jb25maWcKICogQHBhcmFtIHN0cmluZyAkc3ByZWFkc2hlZXRfaWQKICogQHBhcmFtIHN0cmluZyAkc2hlZXRfbmFtZQogKiBAcGFyYW0gYm9vbCAkd2l0aF9oZWFkZXIgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aEhlYWRlciBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gaW50ICRyb3dzX3Blcl9wYWdlIC0gaG93IG1hbnkgcm93cyBwZXIgcGFnZSB0byBmZXRjaCBmcm9tIEdvb2dsZSBTaGVldHMgQVBJIC0gQGRlcHJlY2F0ZWQgdXNlIHdpdGhSb3dzUGVyUGFnZSBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gYXJyYXl7ZGF0ZVRpbWVSZW5kZXJPcHRpb24\/OiBzdHJpbmcsIG1ham9yRGltZW5zaW9uPzogc3RyaW5nLCB2YWx1ZVJlbmRlck9wdGlvbj86IHN0cmluZ30gJG9wdGlvbnMgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aE9wdGlvbnMgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-google-sheet\/src\/Flow\/ETL\/Adapter\/GoogleSheet\/functions.php","start_line_in_file":58,"slug":"from-google-sheet-columns","name":"from_google_sheet_columns","namespace":"Flow\\ETL\\Adapter\\GoogleSheet","parameters":[{"name":"auth_config","type":[{"name":"Sheets","namespace":"Google\\Service","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"spreadsheet_id","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"sheet_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"start_range_column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"end_range_column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"rows_per_page","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"GOOGLE_SHEET","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt0eXBlOiBzdHJpbmcsIHByb2plY3RfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXlfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXk6IHN0cmluZywgY2xpZW50X2VtYWlsOiBzdHJpbmcsIGNsaWVudF9pZDogc3RyaW5nLCBhdXRoX3VyaTogc3RyaW5nLCB0b2tlbl91cmk6IHN0cmluZywgYXV0aF9wcm92aWRlcl94NTA5X2NlcnRfdXJsOiBzdHJpbmcsIGNsaWVudF94NTA5X2NlcnRfdXJsOiBzdHJpbmd9fFNoZWV0cyAkYXV0aF9jb25maWcKICogQHBhcmFtIHN0cmluZyAkc3ByZWFkc2hlZXRfaWQKICogQHBhcmFtIHN0cmluZyAkc2hlZXRfbmFtZQogKiBAcGFyYW0gc3RyaW5nICRzdGFydF9yYW5nZV9jb2x1bW4KICogQHBhcmFtIHN0cmluZyAkZW5kX3JhbmdlX2NvbHVtbgogKiBAcGFyYW0gYm9vbCAkd2l0aF9oZWFkZXIgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aEhlYWRlciBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gaW50ICRyb3dzX3Blcl9wYWdlIC0gaG93IG1hbnkgcm93cyBwZXIgcGFnZSB0byBmZXRjaCBmcm9tIEdvb2dsZSBTaGVldHMgQVBJLCBkZWZhdWx0IDEwMDAgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aFJvd3NQZXJQYWdlIG1ldGhvZCBpbnN0ZWFkCiAqIEBwYXJhbSBhcnJheXtkYXRlVGltZVJlbmRlck9wdGlvbj86IHN0cmluZywgbWFqb3JEaW1lbnNpb24\/OiBzdHJpbmcsIHZhbHVlUmVuZGVyT3B0aW9uPzogc3RyaW5nfSAkb3B0aW9ucyAtIEBkZXByZWNhdGVkIHVzZSB3aXRoT3B0aW9ucyBtZXRob2QgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":19,"slug":"from-json","name":"from_json","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"pointer","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"JsonExtractor","namespace":"Flow\\ETL\\Adapter\\JSON\\JSONMachine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"JSON","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_reading","example":"json"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aCAtIHN0cmluZyBpcyBpbnRlcm5hbGx5IHR1cm5lZCBpbnRvIHN0cmVhbQogKiBAcGFyYW0gP3N0cmluZyAkcG9pbnRlciAtIGlmIHlvdSB3YW50IHRvIGl0ZXJhdGUgb25seSByZXN1bHRzIG9mIGEgc3VidHJlZSwgdXNlIGEgcG9pbnRlciwgcmVhZCBtb3JlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9oYWxheGEvanNvbi1tYWNoaW5lI3BhcnNpbmctYS1zdWJ0cmVlIC0gQGRlcHJlY2F0ZSB1c2Ugd2l0aFBvaW50ZXIgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtID9TY2hlbWEgJHNjaGVtYSAtIGVuZm9yY2Ugc2NoZW1hIG9uIHRoZSBleHRyYWN0ZWQgZGF0YSAtIEBkZXByZWNhdGUgdXNlIHdpdGhTY2hlbWEgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":46,"slug":"to-json","name":"to_json","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"date_time_format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"put_rows_in_new_lines","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"JsonLoader","namespace":"Flow\\ETL\\Adapter\\JSON","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"JSON","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gaW50ICRmbGFncyAtIFBIUCBKU09OIEZsYWdzIC0gQGRlcHJlY2F0ZSB1c2Ugd2l0aEZsYWdzIG1ldGhvZCBpbnN0ZWFkCiAqIEBwYXJhbSBzdHJpbmcgJGRhdGVfdGltZV9mb3JtYXQgLSBmb3JtYXQgZm9yIERhdGVUaW1lSW50ZXJmYWNlOjpmb3JtYXQoKSAtIEBkZXByZWNhdGUgdXNlIHdpdGhEYXRlVGltZUZvcm1hdCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gYm9vbCAkcHV0X3Jvd3NfaW5fbmV3X2xpbmVzIC0gaWYgeW91IHdhbnQgdG8gcHV0IGVhY2ggcm93IGluIGEgbmV3IGxpbmUgLSBAZGVwcmVjYXRlIHVzZSB3aXRoUm93c0luTmV3TGluZXMgbWV0aG9kIGluc3RlYWQKICoKICogQHJldHVybiBKc29uTG9hZGVyCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-meilisearch\/src\/Flow\/ETL\/Adapter\/Meilisearch\/functions.php","start_line_in_file":16,"slug":"to-meilisearch-bulk-index","name":"to_meilisearch_bulk_index","namespace":"Flow\\ETL\\Adapter\\Meilisearch","parameters":[{"name":"config","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"MEILI_SEARCH","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt1cmw6IHN0cmluZywgYXBpS2V5OiBzdHJpbmcsIGh0dHBDbGllbnQ6ID9DbGllbnRJbnRlcmZhY2V9ICRjb25maWcKICov"},{"repository_path":"src\/adapter\/etl-adapter-meilisearch\/src\/Flow\/ETL\/Adapter\/Meilisearch\/functions.php","start_line_in_file":27,"slug":"to-meilisearch-bulk-update","name":"to_meilisearch_bulk_update","namespace":"Flow\\ETL\\Adapter\\Meilisearch","parameters":[{"name":"config","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"MEILI_SEARCH","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt1cmw6IHN0cmluZywgYXBpS2V5OiBzdHJpbmcsIGh0dHBDbGllbnQ6ID9DbGllbnRJbnRlcmZhY2V9ICRjb25maWcKICov"},{"repository_path":"src\/adapter\/etl-adapter-meilisearch\/src\/Flow\/ETL\/Adapter\/Meilisearch\/functions.php","start_line_in_file":38,"slug":"meilisearch-hits-to-rows","name":"meilisearch_hits_to_rows","namespace":"Flow\\ETL\\Adapter\\Meilisearch","parameters":[],"return_type":[{"name":"HitsIntoRowsTransformer","namespace":"Flow\\ETL\\Adapter\\Meilisearch\\MeilisearchPHP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"MEILI_SEARCH","type":"HELPER"}}],"doc_comment":"LyoqCiAqIFRyYW5zZm9ybXMgTWVpbGlzZWFyY2ggcmVzdWx0cyBpbnRvIGNsZWFyIEZsb3cgUm93cy4KICov"},{"repository_path":"src\/adapter\/etl-adapter-meilisearch\/src\/Flow\/ETL\/Adapter\/Meilisearch\/functions.php","start_line_in_file":48,"slug":"from-meilisearch","name":"from_meilisearch","namespace":"Flow\\ETL\\Adapter\\Meilisearch","parameters":[{"name":"config","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"params","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"MeilisearchExtractor","namespace":"Flow\\ETL\\Adapter\\Meilisearch\\MeilisearchPHP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"MEILI_SEARCH","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt1cmw6IHN0cmluZywgYXBpS2V5OiBzdHJpbmd9ICRjb25maWcKICogQHBhcmFtIGFycmF5e3E6IHN0cmluZywgbGltaXQ6ID9pbnQsIG9mZnNldDogP2ludCwgYXR0cmlidXRlc1RvUmV0cmlldmU6ID9hcnJheTxzdHJpbmc+LCBzb3J0OiA\/YXJyYXk8c3RyaW5nPn0gJHBhcmFtcwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":26,"slug":"from-parquet","name":"from_parquet","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Parquet","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"byte_order","type":[{"name":"ByteOrder","namespace":"Flow\\Parquet","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"ParquetExtractor","namespace":"Flow\\ETL\\Adapter\\Parquet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"PARQUET","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_reading","example":"parquet"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gYXJyYXk8c3RyaW5nPiAkY29sdW1ucyAtIGxpc3Qgb2YgY29sdW1ucyB0byByZWFkIGZyb20gcGFycXVldCBmaWxlIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoQ29sdW1uc2AgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIE9wdGlvbnMgJG9wdGlvbnMgLSBAZGVwcmVjYXRlZCB1c2UgYHdpdGhPcHRpb25zYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gQnl0ZU9yZGVyICRieXRlX29yZGVyIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoQnl0ZU9yZGVyYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxpbnQgJG9mZnNldCAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aE9mZnNldGAgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":56,"slug":"to-parquet","name":"to_parquet","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Parquet","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"compressions","type":[{"name":"Compressions","namespace":"Flow\\Parquet\\ParquetFile","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"ParquetLoader","namespace":"Flow\\ETL\\Adapter\\Parquet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"PARQUET","type":"LOADER"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_writing","example":"parquet"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gbnVsbHxPcHRpb25zICRvcHRpb25zIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoT3B0aW9uc2AgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIENvbXByZXNzaW9ucyAkY29tcHJlc3Npb25zIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoQ29tcHJlc3Npb25zYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxTY2hlbWEgJHNjaGVtYSAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aFNjaGVtYWAgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-text\/src\/Flow\/ETL\/Adapter\/Text\/functions.php","start_line_in_file":14,"slug":"from-text","name":"from_text","namespace":"Flow\\ETL\\Adapter\\Text","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"TextExtractor","namespace":"Flow\\ETL\\Adapter\\Text","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"TEXT","type":"EXTRACTOR"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-text\/src\/Flow\/ETL\/Adapter\/Text\/functions.php","start_line_in_file":29,"slug":"to-text","name":"to_text","namespace":"Flow\\ETL\\Adapter\\Text","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"new_line_separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"TEXT","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gc3RyaW5nICRuZXdfbGluZV9zZXBhcmF0b3IgLSBkZWZhdWx0IFBIUF9FT0wgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aE5ld0xpbmVTZXBhcmF0b3IgbWV0aG9kIGluc3RlYWQKICoKICogQHJldHVybiBMb2FkZXIKICov"},{"repository_path":"src\/adapter\/etl-adapter-xml\/src\/Flow\/ETL\/Adapter\/XML\/functions.php","start_line_in_file":34,"slug":"from-xml","name":"from_xml","namespace":"Flow\\ETL\\Adapter\\XML","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"xml_node_path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"XMLParserExtractor","namespace":"Flow\\ETL\\Adapter\\XML","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"XML","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\ETL\\Attribute","arguments":{"topic":"data_reading","example":"xml"}}],"doc_comment":"LyoqCiAqICBJbiBvcmRlciB0byBpdGVyYXRlIG9ubHkgb3ZlciA8ZWxlbWVudD4gbm9kZXMgdXNlIGBmcm9tX3htbCgkZmlsZSktPndpdGhYTUxOb2RlUGF0aCgncm9vdC9lbGVtZW50cy9lbGVtZW50JylgLgogKgogKiAgPHJvb3Q+CiAqICAgIDxlbGVtZW50cz4KICogICAgICA8ZWxlbWVudD48L2VsZW1lbnQ+CiAqICAgICAgPGVsZW1lbnQ+PC9lbGVtZW50PgogKiAgICA8ZWxlbWVudHM+CiAqICA8L3Jvb3Q+CiAqCiAqICBYTUwgTm9kZSBQYXRoIGRvZXMgbm90IHN1cHBvcnQgYXR0cmlidXRlcyBhbmQgaXQncyBub3QgeHBhdGgsIGl0IGlzIGp1c3QgYSBzZXF1ZW5jZQogKiAgb2Ygbm9kZSBuYW1lcyBzZXBhcmF0ZWQgd2l0aCBzbGFzaC4KICoKICogQHBhcmFtIFBhdGh8c3RyaW5nICRwYXRoCiAqIEBwYXJhbSBzdHJpbmcgJHhtbF9ub2RlX3BhdGggLSBAZGVwcmVjYXRlZCB1c2UgYGZyb21feG1sKCRmaWxlKS0+d2l0aFhNTE5vZGVQYXRoKCR4bWxOb2RlUGF0aClgIG1ldGhvZCBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-xml\/src\/Flow\/ETL\/Adapter\/XML\/functions.php","start_line_in_file":50,"slug":"to-xml","name":"to_xml","namespace":"Flow\\ETL\\Adapter\\XML","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"root_element_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"row_element_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"attribute_prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"date_time_format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"xml_writer","type":[{"name":"XMLWriter","namespace":"Flow\\ETL\\Adapter\\XML","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"XMLLoader","namespace":"Flow\\ETL\\Adapter\\XML\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"XML","type":"LOADER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gc3RyaW5nICRyb290X2VsZW1lbnRfbmFtZSAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aFJvb3RFbGVtZW50TmFtZSgpYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRyb3dfZWxlbWVudF9uYW1lIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoUm93RWxlbWVudE5hbWUoKWAgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIHN0cmluZyAkYXR0cmlidXRlX3ByZWZpeCAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aEF0dHJpYnV0ZVByZWZpeCgpYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRkYXRlX3RpbWVfZm9ybWF0IC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoRGF0ZVRpbWVGb3JtYXQoKWAgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIERPTURvY3VtZW50V3JpdGVyICR4bWxfd3JpdGVyCiAqLw=="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":12,"slug":"protocol","name":"protocol","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Protocol","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":18,"slug":"partition","name":"partition","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"value","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Partition","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":24,"slug":"partitions","name":"partitions","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"partition","type":[{"name":"Partition","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"Partitions","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":43,"slug":"path","name":"path","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":"LyoqCiAqIFBhdGggc3VwcG9ydHMgZ2xvYiBwYXR0ZXJucy4KICogRXhhbXBsZXM6CiAqICAtIHBhdGgoJyouY3N2JykgLSBhbnkgY3N2IGZpbGUgaW4gY3VycmVudCBkaXJlY3RvcnkKICogIC0gcGF0aCgnLyoqIC8gKi5jc3YnKSAtIGFueSBjc3YgZmlsZSBpbiBhbnkgc3ViZGlyZWN0b3J5IChyZW1vdmUgZW1wdHkgc3BhY2VzKQogKiAgLSBwYXRoKCcvZGlyL3BhcnRpdGlvbj0qIC8qLnBhcnF1ZXQnKSAtIGFueSBwYXJxdWV0IGZpbGUgaW4gZ2l2ZW4gcGFydGl0aW9uIGRpcmVjdG9yeS4KICoKICogR2xvYiBwYXR0ZXJuIGlzIGFsc28gc3VwcG9ydGVkIGJ5IHJlbW90ZSBmaWxlc3lzdGVtcyBsaWtlIEF6dXJlCiAqCiAqICAtIHBhdGgoJ2F6dXJlLWJsb2I6Ly9kaXJlY3RvcnkvKi5jc3YnKSAtIGFueSBjc3YgZmlsZSBpbiBnaXZlbiBkaXJlY3RvcnkKICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbWl4ZWQ+ICRvcHRpb25zCiAqLw=="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":56,"slug":"path-stdout","name":"path_stdout","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHBhdGggdG8gcGhwIHN0ZG91dCBzdHJlYW0uCiAqCiAqIEBwYXJhbSBudWxsfGFycmF5eydzdHJlYW0nOiAnb3V0cHV0J3wnc3RkZXJyJ3wnc3Rkb3V0J30gJG9wdGlvbnMKICoKICogQHJldHVybiBQYXRoCiAqLw=="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":67,"slug":"path-real","name":"path_real","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":"LyoqCiAqIFJlc29sdmUgcmVhbCBwYXRoIGZyb20gZ2l2ZW4gcGF0aC4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbWl4ZWQ+ICRvcHRpb25zCiAqLw=="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":73,"slug":"native-local-filesystem","name":"native_local_filesystem","namespace":"Flow\\Filesystem\\DSL","parameters":[],"return_type":[{"name":"NativeLocalFilesystem","namespace":"Flow\\Filesystem\\Local","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":79,"slug":"stdout-filesystem","name":"stdout_filesystem","namespace":"Flow\\Filesystem\\DSL","parameters":[],"return_type":[{"name":"StdOutFilesystem","namespace":"Flow\\Filesystem\\Local","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":90,"slug":"fstab","name":"fstab","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"filesystems","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true}],"return_type":[{"name":"FilesystemTable","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBmaWxlc3lzdGVtIHRhYmxlIHdpdGggZ2l2ZW4gZmlsZXN5c3RlbXMuCiAqIEZpbGVzeXN0ZW1zIGNhbiBiZSBhbHNvIG1vdW50ZWQgbGF0ZXIuCiAqIElmIG5vIGZpbGVzeXN0ZW1zIGFyZSBwcm92aWRlZCwgbG9jYWwgZmlsZXN5c3RlbSBpcyBtb3VudGVkLgogKi8="},{"repository_path":"src\/bridge\/filesystem\/azure\/src\/Flow\/Filesystem\/Bridge\/Azure\/DSL\/functions.php","start_line_in_file":12,"slug":"azure-filesystem-options","name":"azure_filesystem_options","namespace":"Flow\\Filesystem\\Bridge\\Azure\\DSL","parameters":[],"return_type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\Azure","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/azure\/src\/Flow\/Filesystem\/Bridge\/Azure\/DSL\/functions.php","start_line_in_file":18,"slug":"azure-filesystem","name":"azure_filesystem","namespace":"Flow\\Filesystem\\Bridge\\Azure\\DSL","parameters":[{"name":"blob_service","type":[{"name":"BlobServiceInterface","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\Azure","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"AzureBlobFilesystem","namespace":"Flow\\Filesystem\\Bridge\\Azure","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/async-aws\/src\/Flow\/Filesystem\/Bridge\/AsyncAWS\/DSL\/functions.php","start_line_in_file":15,"slug":"aws-s3-client","name":"aws_s3_client","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS\\DSL","parameters":[{"name":"configuration","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"S3Client","namespace":"AsyncAws\\S3","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"S3_FILESYSTEM","type":"HELPER"}}],"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPiAkY29uZmlndXJhdGlvbiAtIGZvciBkZXRhaWxzIHBsZWFzZSBzZWUgaHR0cHM6Ly9hc3luYy1hd3MuY29tL2NsaWVudHMvczMuaHRtbAogKi8="},{"repository_path":"src\/bridge\/filesystem\/async-aws\/src\/Flow\/Filesystem\/Bridge\/AsyncAWS\/DSL\/functions.php","start_line_in_file":21,"slug":"aws-s3-filesystem","name":"aws_s3_filesystem","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS\\DSL","parameters":[{"name":"bucket","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"s3Client","type":[{"name":"S3Client","namespace":"AsyncAws\\S3","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"AsyncAWSS3Filesystem","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"S3_FILESYSTEM","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":18,"slug":"azurite-url-factory","name":"azurite_url_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"port","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false},{"name":"secure","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"AzuriteURLFactory","namespace":"Flow\\Azure\\SDK\\BlobService\\URLFactory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":24,"slug":"azure-shared-key-authorization-factory","name":"azure_shared_key_authorization_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"account","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"key","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"SharedKeyFactory","namespace":"Flow\\Azure\\SDK\\AuthorizationFactory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":30,"slug":"azure-blob-service-config","name":"azure_blob_service_config","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"account","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"container","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"Configuration","namespace":"Flow\\Azure\\SDK\\BlobService","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":36,"slug":"azure-url-factory","name":"azure_url_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"AzureURLFactory","namespace":"Flow\\Azure\\SDK\\BlobService\\URLFactory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":42,"slug":"azure-http-factory","name":"azure_http_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"request_factory","type":[{"name":"RequestFactoryInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"stream_factory","type":[{"name":"StreamFactoryInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false}],"return_type":[{"name":"HttpFactory","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":48,"slug":"azure-blob-service","name":"azure_blob_service","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"configuration","type":[{"name":"Configuration","namespace":"Flow\\Azure\\SDK\\BlobService","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"azure_authorization_factory","type":[{"name":"AuthorizationFactory","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false},{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"azure_http_factory","type":[{"name":"HttpFactory","namespace":"Flow\\Azure\\SDK","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"azure_url_factory","type":[{"name":"URLFactory","namespace":"Flow\\Azure\\SDK","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false},{"name":"logger","type":[{"name":"LoggerInterface","namespace":"Psr\\Log","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false}],"return_type":[{"name":"BlobServiceInterface","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\ETL\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"doc_comment":null}] \ No newline at end of file