#34 Macro for generating files[still working on]
Closed 4 years ago by pkopkan. Opened 4 years ago by pkopkan.
rpms/ pkopkan/pyproject-rpm-macros files-section-macro  into  master

file modified
+47
@@ -130,6 +130,53 @@ 

  

      BuildRequires: python3dist(tox-current-env)

  

+ 

+ Generating the %files section

+ -----------------------------

+ 

+ To generate the list of files in the `%files` section, you can use `%pyproject_save_files` after the `%pyproject_install` macro.

+ It takes toplevel module names (i.e. the names used with `import` in Python) and stores paths for those modules and metadata for the package (dist-info directory) to a file stored at `%{pyproject_files}`.

+ For example, if a package provides the modules `requests` and `_requests`, write:

+ 

+     %install

+     %pyproject_install

+     %pyproject_save_files requests _requests

+ 

+ To add listed files to the `%files` section, use `%files -f %{pyproject_files}`.

+ Note that you still need to add any documentation and license manually (for now).

+ 

+     %files -n python3-requests -f %{pyproject_files}

+     %doc README.rst

+     %license LICENSE

+ 

+ You can use globs in the module names if listing them explicitly would be too tedious:

+ 

+     %install

+     %pyproject_install

+     %pyproject_save_files *requests

+ 

+ In fully automated environmets, you can use the `*` glob to include all modules. In Fedora however, you should always use a more specific glob to avoid accidentally packaging unwanted files (for example, a top level module named `test`).

+ 

+ Speaking about automated environments, it is possible to also list all executables in `/usr/bin` by adding a special `+bindir` argument.

+ 

+     %install

+     %pyproject_install

+     %pyproject_save_files * +bindir

+     

+     %files -n python3-requests -f %{pyproject_files}

+ 

+ However, in Fedora packages, always list executables explicitly to avoid unintended collisions with other packages or accidental missing executables:

+ 

+     %install

+     %pyproject_install

+     %pyproject_save_files requests _requests

+     

+     %files -n python3-requests -f %{pyproject_files}

+     %doc README.rst

+     %license LICENSE

+     %{_bindir}/downloader

+ 

+ 

  Limitations

  -----------

  

@@ -0,0 +1,724 @@ 

+ PARAMETRIZED_EXPECTED_OUTPUT = {

+     "requests": {'executables': {'files': []},

+                  'metadata': {'dirs': ['/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/'],

+                                 'docs': [],

+                                 'files': sorted(['/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/LICENSE',

+                                                  '/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/top_level.txt',

+                                                  '/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/METADATA',

+                                                  '/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/INSTALLER',

+                                                  '/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/RECORD',

+                                                  '/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/WHEEL']),

+                                 'licenses': []},

+                  'modules': {'requests': [{

+                      'type': "package",

+                      'files': ['/usr/lib/python3.7/site-packages/requests/']}]},

+ 

+                  'other': {"files": []}},

+ 

+     "kerberos": {'executables': {'files': []},

+                  'metadata': {'dirs': ['/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/'],

+                                 'docs': [],

+                                 'files': sorted([

+                                     '/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/top_level.txt',

+                                     '/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/METADATA',

+                                     '/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/INSTALLER',

+                                     '/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/RECORD',

+                                     '/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/WHEEL']),

+                                 'licenses': []},

+                  'modules': {"kerberos": [{"type": "extension",

+                                           "files": [

+                                               '/usr/lib64/python3.7/site-packages/kerberos.cpython-37m-x86_64-linux-gnu.so']

+                                           }]},

+                  'other': {"files": []}},

+ 

+     "tldr": {'executables': {'files': sorted(['/usr/bin/tldr.py',

+                                               '/usr/bin/tldr'])},

+              'metadata': {'dirs': ['/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/'],

+                             'docs': [],

+                             'files': sorted(['/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/LICENSE',

+                                              '/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/top_level.txt',

+                                              '/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/METADATA',

+                                              '/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/INSTALLER',

+                                              '/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/RECORD',

+                                              '/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/WHEEL']),

+                             'licenses': []},

+              'modules': {'tldr': [{'type': 'script',

+                                   "pycache": ['/usr/lib/python3.7/site-packages/tldr.py']

+                                   }]},

+              'other': {'files': []}},

+     "tensorflow": {

+         'metadata': {'dirs': ['/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/'],

+                        'docs': [],

+                        'files': sorted(['/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/top_level.txt',

+                                         '/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/METADATA',

+                                         '/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/INSTALLER',

+                                         '/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/RECORD',

+                                         '/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/entry_points.txt',

+                                         '/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/WHEEL']),

+                        'licenses': []},

+         'modules': {"tensorflow": [{"type": "package",

+                                    'files': ['/usr/lib64/python3.7/site-packages/tensorflow/']}],

+                     "tensorflow_core": [{"type": "package",

+                                         "files": [

+                                             "/usr/lib64/python3.7/site-packages/tensorflow_core/",

+                                         ]}]},

+         'executables': {'files': sorted(['/usr/bin/saved_model_cli',

+                                   '/usr/bin/toco',

+                                   '/usr/bin/estimator_ckpt_converter',

+                                   '/usr/bin/toco_from_protos',

+                                   '/usr/bin/tflite_convert',

+                                   '/usr/bin/tf_upgrade_v2',

+                                   '/usr/bin/tensorboard'])},

+         'other': {

+             'files': sorted([

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/allocator_retry.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/base_collective_executor.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/bfc_allocator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/buf_rendezvous.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/build_graph_options.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/collective_executor_mgr.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/collective_param_resolver_local.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/collective_rma_local.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/collective_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/colocation_graph.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/constant_folding.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/copy_tensor.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/costmodel_manager.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/debugger_state_interface.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/device.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/device_factory.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/device_mgr.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/device_resolver_local.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/device_set.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/dma_helper.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/eval_const_tensor.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/executor.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/executor_factory.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/function.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/gpu/gpu_event_mgr.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/gpu/gpu_id.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/gpu/gpu_id_manager.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/gpu/gpu_init.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/graph_execution_state.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/graph_optimizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/graph_runner.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/hierarchical_tree_broadcaster.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/input_colocation_exemption_registry.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/inspecting_placer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/isolate_placer_inspection_required_ops_pass.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/local_device.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/lower_case_op.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/lower_function_call_op.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/lower_functional_ops.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/lower_if_op.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/lower_while_op.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/memory_types.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/metrics.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/mkl_cpu_allocator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/optimization_registry.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/partitioning_utils.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/pending_counts.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/placer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/placer_inspection_required_ops_utils.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/pool_allocator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/process_function_library_runtime.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/process_state.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/process_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/profile_handler.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/renamed_device.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/rendezvous_mgr.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/rendezvous_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/ring_alg.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/ring_gatherer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/ring_reducer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/scoped_allocator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/scoped_allocator_mgr.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/session_factory.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/shape_refiner.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/shared_counter.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/single_threaded_cpu_device.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/stats_publisher_interface.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/step_stats_collector.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/threadpool_device.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/example/example.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/example/example_parser_configuration.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/example/feature.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/example/feature_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/allocation_description.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/allocator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/allocator_registry.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/api_def.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/attr_value.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/attr_value_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/bfloat16.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/bounds_check.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/cancellation.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/collective.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/common_shape_fns.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/control_flow.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/cost_graph.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/dataset.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/dataset_stateful_op_whitelist.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/device_attributes.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/device_base.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/function.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/function.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/function_handle_cache.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/graph.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/graph_def_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/graph_to_functiondef.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/graph_transfer_info.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/kernel_def.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/kernel_def_builder.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/kernel_def_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/log_memory.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/log_memory.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/logging.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/lookup_interface.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/memory_types.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/model.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/node_def.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/node_def_builder.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/node_def_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/numeric_op.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/numeric_types.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/op.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/op_def.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/op_def_builder.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/op_def_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/op_kernel.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/op_segment.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/ops_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/partial_tensor_shape.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/queue_interface.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/reader_base.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/reader_base.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/reader_interface.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/reader_op_kernel.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/register_types.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/register_types_traits.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/remote_fused_graph_execute_info.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/rendezvous.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/resource_handle.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/resource_handle.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/resource_mgr.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/resource_op_kernel.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/resource_var.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/run_handler.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/run_handler_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/selective_registration.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/session_state.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/shape_inference.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/shared_ptr_variant.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/stats_aggregator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/step_stats.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/summary.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/tensor.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/tensor.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/tensor_description.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/tensor_reference.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/tensor_shape.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/tensor_shape.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/tensor_slice.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/tensor_slice.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/tensor_types.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/tensor_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/thread_factory.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/tracking_allocator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/type_index.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/type_traits.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/typed_allocator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/types.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/types.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/unique_tensor_references.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/variable.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/variant.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/variant_encode_decode.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/variant_op_registry.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/variant_tensor_data.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/versions.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/framework/versions.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/algorithm.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/collective_order.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/colors.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/control_flow.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/costmodel.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/default_device.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/edgeset.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/gradients.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/graph.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/graph_constructor.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/graph_def_builder.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/graph_def_builder_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/graph_partition.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/mkl_layout_pass.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/mkl_tfconversion_pass.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/node_builder.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/optimizer_cse.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/quantize_training.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/subgraph.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/tensor_id.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/testlib.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/types.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/validate.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/graph/while_context.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/clusters/cluster.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/clusters/utils.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/clusters/virtual_cluster.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/costs/analytical_cost_estimator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/costs/cost_estimator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/costs/graph_memory.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/costs/graph_properties.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/costs/op_context.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/costs/op_level_cost_estimator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/costs/op_performance_data.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/costs/utils.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/costs/virtual_placer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/costs/virtual_scheduler.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/devices.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/graph_topology_view.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/graph_view.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/grappler_item.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/mutable_graph_view.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/op_types.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/arithmetic_optimizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/auto_mixed_precision.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/auto_mixed_precision_lists.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/auto_parallel.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/constant_folding.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/custom_graph_optimizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/debug_stripper.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/dependency_optimizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/evaluation_utils.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/function_api_info.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/function_optimizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/generic_layout_optimizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/generic_layout_optimizer_transposer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/generic_layout_optimizer_transposer_factory.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/graph_optimizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/graph_optimizer_stage.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/implementation_selector.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/loop_optimizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/memory_optimizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/meta_optimizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/model_pruner.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/pin_to_host_optimizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/remapper.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/scoped_allocator_optimizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/shape_optimizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/optimizers/static_schedule.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/utils.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/utils/canonicalizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/utils/colocation.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/utils/frame.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/utils/functions.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/utils/graph_view.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/utils/graph_view_internal.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/utils/symbolic_shapes.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/utils/topological_sort.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/utils/tpu.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/utils/transitive_fanin.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/utils/traversal.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/verifiers/graph_verifier.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/grappler/verifiers/structure_verifier.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/bfloat16/bfloat16.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/arena.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/bitmap.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/bits.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/blocking_counter.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/coding.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/error_codes.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/errors.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/notification.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/raw_coding.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/refcount.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/status.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/status_test_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/stringpiece.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/threadpool.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/threadpool_interface.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/core/threadpool_options.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/array_slice.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/cleanup.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/compactptrset.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/edit_distance.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/flatmap.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/flatrep.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/flatset.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/inlined_vector.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/int_type.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/iterator_range.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/manual_constructor.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/map_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/optional.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/priority_queue_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/subtle/map_traits.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/gtl/top_n.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/hash/crc32c.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/hash/hash.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/histogram/histogram.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/block.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/block_builder.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/buffered_inputstream.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/compression.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/format.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/inputbuffer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/inputstream_interface.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/iterator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/path.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/proto_encode_helper.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/random_inputstream.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/record_reader.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/record_writer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/snappy/snappy_inputbuffer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/snappy/snappy_outputbuffer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/table.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/table_builder.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/table_options.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/two_level_iterator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/zlib_compression_options.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/zlib_inputstream.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/io/zlib_outputbuffer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/math/math_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/monitoring/collected_metrics.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/monitoring/collection_registry.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/monitoring/counter.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/monitoring/gauge.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/monitoring/metric_def.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/monitoring/mobile_counter.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/monitoring/mobile_gauge.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/monitoring/mobile_sampler.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/monitoring/sampler.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/random/distribution_sampler.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/random/exact_uniform_int.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/random/philox_random.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/random/philox_random_test_utils.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/random/random.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/random/random_distributions.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/random/simple_philox.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/random/weighted_picker.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/strings/base64.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/strings/numbers.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/strings/ordered_code.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/strings/proto_serialization.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/strings/proto_text_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/strings/scanner.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/strings/str_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/strings/strcat.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/strings/stringprintf.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/lib/wav/wav_io.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/abi.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/annotation.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/byte_order.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/auth_provider.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/compute_engine_metadata_client.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/compute_engine_zone_provider.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/curl_http_request.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/expiring_lru_cache.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/file_block_cache.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/gcs_dns_cache.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/gcs_file_system.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/gcs_throttle.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/google_auth_provider.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/http_request.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/oauth_client.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/ram_file_block_cache.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/retrying_file_system.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/retrying_utils.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/time_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cloud/zone_provider.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/context.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cord.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cpu_feature_guard.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cpu_info.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cuda.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/cuda_libdevice_path.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/context.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/cord.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/dynamic_annotations.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/integral_types.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/logging.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/mutex.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/mutex_data.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/notification.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/posix_file_system.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/stacktrace.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/strong_hash.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/subprocess.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/tracing_impl.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/default/unbounded_work_queue.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/demangle.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/denormal.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/dynamic_annotations.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/env.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/env_time.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/error.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/file_statistics.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/file_system.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/file_system_helper.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/fingerprint.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/grpc_services.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/hadoop/hadoop_file_system.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/host_info.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/human_readable_json.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/init_main.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/load_library.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/logger.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/logging.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/macros.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/mem.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/monitoring.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/mutex.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/net.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/notification.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/null_file_system.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/numa.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/numbers.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/platform.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/platform_strings.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/platform_strings_computed.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/prefetch.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/profile_utils/android_armv7a_cpu_utils_helper.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/profile_utils/clock_cycle_profiler.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/profile_utils/cpu_utils.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/profile_utils/i_cpu_utils_helper.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/protobuf.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/protobuf_compiler.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/protobuf_internal.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/regexp.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/rocm.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/rocm_rocdl_path.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/s3/aws_crypto.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/s3/aws_logging.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/s3/s3_file_system.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/scanner.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/setround.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/snappy.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/stacktrace.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/stacktrace_handler.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/str_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/strcat.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/stream_executor.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/stream_executor_no_cuda.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/stringpiece.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/stringprintf.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/strong_hash.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/subprocess.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/tensor_coding.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/test.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/test_benchmark.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/thread_annotations.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/threadpool.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/threadpool_interface.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/threadpool_options.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/tracing.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/tstring.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/types.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/platform/unbounded_work_queue.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/bfc_memory_map.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/cluster.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/config.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/control_flow.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/data/experimental/snapshot.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/debug.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/debug_event.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/device_properties.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/error_codes.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/graph_debug_info.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/meta_graph.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/named_tensor.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/queue_runner.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/remote_tensor_handle.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/rewriter_config.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/saved_model.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/saved_object_graph.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/saver.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/struct.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/tensor_bundle.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/tensorflow_server.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/trace_events.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/trackable_object_graph.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/transport_options.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/protobuf/verifier_config.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/public/session.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/public/session_options.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/public/version.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/activation_mode.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/batch_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/bcast.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/command_line_flags.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/debug_events_writer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/device_name_utils.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/dump_graph.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/einsum_op_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/env_var.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/equal_graph_def.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/event.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/events_writer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/example_proto_fast_parsing.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/example_proto_helper.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/exec_on_stall.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/gpu_cuda_alias.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/gpu_device_functions.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/gpu_kernel_helper.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/gpu_launch_config.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/guarded_philox_random.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/matmul_autotune.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/matmul_bcast.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/memmapped_file_system.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/memmapped_file_system.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/memmapped_file_system_writer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/mirror_pad_mode.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/mkl_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/overflow.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/padding.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/permutation_input_iterator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/permutation_output_iterator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/port.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/presized_cuckoo_map.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/ptr_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/reffed_status_callback.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/saved_tensor_slice.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/saved_tensor_slice_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/sparse/dim_comparator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/sparse/group_iterator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/sparse/sparse_tensor.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/stat_summarizer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/stat_summarizer_options.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/stats_calculator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/stream_executor_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/strided_slice_op.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/tensor_format.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/tensor_ops_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/tensor_slice_reader.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/tensor_slice_reader_cache.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/tensor_slice_set.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/tensor_slice_util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/tensor_slice_writer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/test_log.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/transform_output_iterator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/use_cudnn.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/util.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/work_sharder.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/util/xla_config_registry.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/include/external/eigen_archive/COPYING.MPL2',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/allocator_stats.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/blas.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/cuda/cuda_activation.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/cuda/cuda_diagnostics.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/cuda/cuda_driver.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/cuda/cuda_platform_id.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/device_description.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/device_memory.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/device_memory_allocator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/device_options.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/dnn.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/dnn.pb.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/event.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/executor_cache.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/fft.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/gpu/gpu_activation.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/gpu/gpu_diagnostics.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/gpu/gpu_driver.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/gpu/gpu_types.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/gpu_launch_dim.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/host/host_platform_id.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/host_or_device_scalar.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/kernel.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/kernel_cache_config.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/kernel_spec.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/launch_dim.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/array_slice.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/demangle.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/env.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/error.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/human_readable.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/initialize.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/mathutil.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/numbers.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/path.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/process_state.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/stacktrace.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/static_threadlocal.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/status.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/status_macros.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/statusor.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/statusor_internals.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/thread_options.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/lib/threadpool.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/module_spec.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/multi_platform_manager.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/platform.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/platform/default/dso_loader.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/platform/default/initialize.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/platform/dso_loader.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/platform/initialize.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/platform/logging.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/platform/platform.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/platform/port.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/platform/thread_annotations.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/plugin.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/plugin_registry.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/rng.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/rocm/rocm_platform_id.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/scratch_allocator.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/shared_memory_config.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/stream.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/stream_executor.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/stream_executor_internal.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/stream_executor_pimpl.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/temporary_device_memory.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/temporary_memory_manager.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/timer.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/stream_executor/trace_listener.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/Eigen/Cholesky',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/Eigen/Core',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/Eigen/Eigenvalues',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/Eigen/LU',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/Eigen/OrderingMethods',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/Eigen/QR',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/Eigen/SVD',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/Eigen/SparseCholesky',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/Eigen/SparseCore',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/LICENSE',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/CXX11/FixedPoint',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/CXX11/Tensor',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/CXX11/ThreadPool',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/CXX11/src/FixedPoint/FixedPointTypes.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/CXX11/src/FixedPoint/MatMatProduct.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/CXX11/src/FixedPoint/MatMatProductAVX2.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/CXX11/src/FixedPoint/MatMatProductNEON.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/CXX11/src/FixedPoint/MatVecProduct.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/CXX11/src/FixedPoint/PacketMathAVX2.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/CXX11/src/FixedPoint/PacketMathAVX512.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/CXX11/src/FixedPoint/TypeCastingAVX2.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/CXX11/src/FixedPoint/TypeCastingAVX512.h',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/MatrixFunctions',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/third_party/eigen3/unsupported/Eigen/SpecialFunctions', ])

+         }},

+ 

+     "mistune": {'executables': {'files': []},

+                      'metadata': {'dirs': ['/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/'],

+                                     'docs': [],

+                                     'files': sorted(['/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/LICENSE',

+                                                      '/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/top_level.txt',

+                                                      '/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/METADATA',

+                                                      '/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/INSTALLER',

+                                                      '/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/RECORD',

+                                                      '/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/WHEEL']),

+                                     'licenses': []},

+                      'modules': {

+                         'mistune': [

+                             {

+                              'type': 'script',

+                              'pycache': ['/usr/lib64/python3.7/site-packages/mistune.py']

+                             },

+                             {

+                             'type': 'extension',

+                             'files': ['/usr/lib64/python3.7/site-packages/mistune.cpython-38-x86_64-linux-gnu.so']

+                             }

+                         ]

+                      },

+                         'other': {"files": []}},

+ }

@@ -0,0 +1,290 @@ 

+ import argparse

+ import csv

+ import fnmatch

+ import os

+ import re

+ from pathlib import Path

+ from pprint import pformat

+ from warnings import warn

+ 

+ 

+ def delete_commonpath(longer_path, prefix):

+     """return string with deleted common path."""

+ 

+     common_path = os.path.commonpath((longer_path, prefix)).split('/')

+     return '/'.join(longer_path.split('/')[len(common_path):])

+ 

+ 

+ def locate_record(root, python3_sitelib, python3_sitearch):

+     """return path to record stripped of root path."""

+ 

+     record_path = list((Path(root) / Path(python3_sitelib[1:])).glob('*.dist-info/RECORD'))

+     record_path.extend(list((Path(root) / Path(python3_sitearch[1:])).glob('*.dist-info/RECORD')))

+ 

+     if len(record_path) == 0:

+         raise FileNotFoundError("Did not find RECORD file")

+     if len(record_path) > 1:

+         raise FileExistsError("Multiple *.dist-info directories")

+ 

+     record_path = str(record_path[0])

+     return "/" + delete_commonpath(record_path, root)

+ 

+ 

+ def read_record(root, record_path):

+     """return parsed list [[[path], [hash], [size]], ...]"""

+ 

+     with open(f"{root}/{record_path}", newline='') as f:

+         content = csv.reader(f, delimiter=',', quotechar='"', lineterminator=os.linesep)

+         return list(content)

+ 

+ 

+ def parse_record(record_path, record_content):

+     """return list of paths stripped of root

+ 

+     params:

+     record_path: path to record file stripped of root

+     record_content: list of files relative to directory where dist-info directory is

+ 

+     Example:

+         parse_record("/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/RECORD", ["requests", ...])

+             -> ["/usr/lib/python3.7/site-packages/requests", ...]

+     """

+ 

+     record_path = "/".join(record_path.split('/')[:-2])

+     files = [os.path.normpath(os.path.join(record_path, row[0])) for row in record_content]

+     return files

+ 

+ 

+ def pattern_filter(pattern, parsed_record_content):

+     """filter list by given pattern."""

+ 

+     matched = []

+     comp = re.compile(pattern)

+     for path in parsed_record_content:

+         if comp.search(path):

+             matched.append(path)

+     return matched

+ 

+ 

+ def find_metadata(parsed_record_content, python3_sitedir, record_path):

+     """go through parsed RECORD content, returns tuple:

+     (path to directory containing metadata, [paths to all metadata files])."""

+ 

+     dist_info = re.search(f"{re.escape(python3_sitedir)}/[^/]*", record_path)[0] + "/"

+ 

+     return dist_info, [*pattern_filter(f"{re.escape(dist_info)}.*", parsed_record_content)]

+ 

+ 

+ def find_extension(python3_sitedir, parsed_record_content):

+     """list paths to extensions"""

+ 

+     return pattern_filter(f"{re.escape(python3_sitedir)}/[^/]*\\.so$", parsed_record_content)

+ 

+ 

+ def find_script(python3_sitedir, parsed_record_content):

+     """list paths to scripts"""

+ 

+     scripts = pattern_filter(f"{re.escape(python3_sitedir)}/[^/]*\\.py$", parsed_record_content)

+     pycache = []

+     for script in scripts:

+         filename = delete_commonpath(script, python3_sitedir)[:-(len('.py'))]  # without suffix

+         pycache.extend(pattern_filter(f"{re.escape(python3_sitedir)}/__pycache__/{filename}.*\\.pyc", parsed_record_content))

+ 

+     return scripts, pycache

+ 

+ 

+ def find_package(python3_sitelib, python3_sitearch, parsed_record_content):

+     """return tuple([package dirs], [all package files])"""

+ 

+     packages = set()

+     for sitedir in (python3_sitelib, python3_sitearch):

+         python_files = pattern_filter(f"{re.escape(sitedir)}/.*/.*\\.py$", parsed_record_content)

+         sitedir = Path(sitedir)

+         for file in python_files:

+             file = Path(file)

+             if os.path.commonpath((sitedir, file)) == str(sitedir):

+                 py_package = file.parts[:len(sitedir.parts) + 1]

+                 py_package = "/".join(py_package) + "/"  # //usr/lib...

+                 packages.add(py_package[1:])  # getting rid of unwanted /

+ 

+     files = []

+     for package in packages:

+         files += pattern_filter(f"{re.escape(package)}.*", parsed_record_content)

+ 

+     return packages, files

+ 

+ 

+ def find_executable(bindir, parsed_record_content):

+     """return all files in bindir"""

+ 

+     executables = []

+     bindir_content = pattern_filter(f"{re.escape(bindir)}.*", parsed_record_content)

+     for file in bindir_content:

+         # do not list .pyc files, because pyproject-rpm-macro deletes them in bindir

+         if not file.endswith(".pyc"):

+             executables.append(file)

+     return executables, bindir_content

+ 

+ 

+ def get_modules(packages, extension_files, scripts):

+     """helper function"""

+ 

+     modules = {}

+ 

+     for package in packages:

+         key = Path(package).parts[-1]

+         if key not in modules:

+             modules[key] = []

+         modules[key].append({

+             "type": "package",

+             "files": [package],

+         })

+     for script in scripts:

+         key = Path(script)

+         key = key.stem

+         if key not in modules:

+             modules[key] = []

+ 

+         modules[key].append({

+             "type": "script",

+             "pycache": [script],

+         })

+ 

+     for extension in extension_files:

+         key = Path(extension).stem

+         key = Path(key).stem  # extensions have two suffixes

+         if key not in modules:

+             modules[key] = []

+         modules[key].append({

+             "type": "extension",

+             "files": [extension]

+         })

+ 

+     return modules

+ 

+ 

+ def classify_paths(record_path, parsed_record_content, python3_sitelib, python3_sitearch, bindir):

+     """return dict with logical representation of files"""

+ 

+     if os.path.commonpath((python3_sitelib, record_path)) == python3_sitelib:

+         python3_sitedir = python3_sitelib

+     elif os.path.commonpath((python3_sitearch, record_path)) == python3_sitearch:

+         python3_sitedir = python3_sitearch

+     else:

+         assert False, f"""python3_sitelib: {python3_sitelib} or python3_sitearch: {python3_sitearch} does not

+         contain RECORD file: {record_path}"""

+ 

+     packages, package_files = find_package(python3_sitelib, python3_sitearch, parsed_record_content)

+     for file in package_files:

+         parsed_record_content.remove(file)

+     metadata_dir, metadata_files = find_metadata(parsed_record_content, python3_sitedir, record_path)

+     for file in metadata_files:

+         parsed_record_content.remove(file)

+     extension_files = find_extension(python3_sitedir, parsed_record_content)

+     for file in extension_files:

+         parsed_record_content.remove(file)

+     scripts, pycached = find_script(python3_sitedir, parsed_record_content)

+     for file in scripts + pycached:

+         parsed_record_content.remove(file)

+     executables, bindir_content = find_executable(bindir, parsed_record_content)

+     for file in bindir_content:

+         parsed_record_content.remove(file)

+ 

+     modules = get_modules(packages, extension_files, scripts)

+ 

+     parsed_record_content = sorted(parsed_record_content)

+     if parsed_record_content:

+         warn(f"Uncathegorized files: \n{pformat(parsed_record_content)}")

+ 

+     paths = {

+             "metadata": {

+                 "files": metadata_files,   # ends in slash = directory & contents

+                 "dirs": [metadata_dir],

+                 "docs": [],  # now always missing

+                 "licenses": [],  # now always missing

+             },

+             "modules": modules,

+             "executables": {

+                 "files": executables

+             },

+             "other": {

+                 "files": parsed_record_content

+             }

+         }

+ 

+     return paths

+ 

+ 

+ def generate_file_list(paths_dict, modules_glob, include_executables=False):

+     """generated list of files to be added to specfile %file"""

+     paths = set(paths_dict["executables"]["files"]) if include_executables else set()

+     modules = paths_dict["modules"]

+     for glob in modules_glob:

+         for names in modules:

+             if fnmatch.fnmatch(re.escape(names), glob):

+                 for module in modules[names]:

+                     if module["type"] == "script":

+                         script_and_pycache = []

+                         for file in module["pycache"]:

+                             # %pycached macro logic

+                             script_and_pycache.append(file)

+                             pyminor = re.search(r"/python3.(\d+)/", file)[1] if re.search(r"/python3.(\d+)/", file) else "*"

+                             dirname = re.match("(.*/)", file)[0]

+                             modulename = re.match(".*/([^/]+).py", file)[1]

+                             script_and_pycache.append(dirname + "__pycache__/" + modulename + ".cpython-3" + pyminor + "{,.opt-?}.pyc")

+                         paths.update(set(script_and_pycache))

+                     else:

+                         paths.update(set((module["files"])))

+ 

+     paths.update(set(paths_dict['metadata']['files']))

+ 

+     return sorted(paths)

+ 

+ 

+ def pyproject_save_files_parse(module_globs: list):

+     """parse input from %pyproject_save_files macro"""

+     include_bindir = False

+ 

+     if "+bindir" in module_globs:

+         include_bindir = True

+         module_globs.remove("+bindir")

+ 

+     return [module_globs, include_bindir]

+ 

+ 

+ def pyproject_save_files(root, python3_sitelib, python3_sitearch, bindir, args):

+     """return list of files for specfile

+ 

+     args: arguments from %{pyproject_save_files} macro

+     """

+     record_path = locate_record(root, python3_sitelib, python3_sitearch)

+     parsed_record = parse_record(record_path, (read_record(root, record_path)))

+ 

+     paths_dict = classify_paths(record_path, parsed_record, python3_sitelib, python3_sitearch, bindir)

+ 

+     files = generate_file_list(paths_dict, *pyproject_save_files_parse(args))

+ 

+     return files

+ 

+ 

+ parser = argparse.ArgumentParser()

+ parser.add_argument("path_to_save", help="Path to save list of paths for file secton")

+ parser.add_argument('buildroot')

+ parser.add_argument('python3_sitelib')

+ parser.add_argument('python3_sitearch')

+ parser.add_argument('bindir')

+ parser.add_argument("globs_to_save", nargs="+")

+ 

+ 

+ def main(cli_args):

+     args = cli_args.__dict__

+     path_to_save = args.pop("path_to_save")

+     file_section = pyproject_save_files(*args.values())

+ 

+     with open(path_to_save, "w") as file:

+         file.writelines([path + "\n" for path in file_section])

+ 

+ 

+ if __name__ == '__main__':

+     cli_args = parser.parse_args()

+     main(cli_args)

file modified
+6
@@ -1,5 +1,7 @@ 

  %_pyproject_wheeldir ./pyproject-macros-wheeldir

  

+ %pyproject_files %{_builddir}/pyproject-files

+ 

  %pyproject_wheel() %{expand:\\\

  CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}" \\\

  %{__python3} -m pip wheel --wheel-dir %{_pyproject_wheeldir} --no-deps --use-pep517 --no-build-isolation --disable-pip-version-check --progress-bar off --verbose .
@@ -41,3 +43,7 @@ 

  PYTHONPATH="${PYTHONPATH:-%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}}" \\

  tox --current-env -q --recreate -e "%{-e:%{-e*}}%{!-e:%{toxenv}}" %{?*}

  }

+ 

+ %pyproject_save_files() %{expand:\\\

+ %{__python3} %{_rpmconfigdir}/redhat/generate_file_section.py %{pyproject_files} %{buildroot} %{python3_sitelib} %{python3_sitearch} %{_bindir} %{*}

+ } 

\ No newline at end of file

file modified
+17 -4
@@ -6,10 +6,13 @@ 

  

  # Keep the version at zero and increment only release

  Version:        0

- Release:        12%{?dist}

- 

+ Release:        13%{?dist}

  Source0:        macros.pyproject

  Source1:        pyproject_buildrequires.py

+ Source2:        generate_file_section.py

+ Source3:        test_generate_file_section.py

+ Source4:        classify_paths_output.py

+ 

  

  Source8:        README.md

  Source9:        LICENSE
@@ -17,6 +20,13 @@ 

  Source10:       test_pyproject_buildrequires.py

  Source11:       testcases.yaml

  

+ Source12:       test_RECORD_kerberos

+ Source13:       test_RECORD_requests

+ Source14:       test_RECORD_tensorflow

+ Source15:       test_RECORD_tldr

+ Source16:       test_RECORD_mistune

+ 

+ 

  URL:            https://src.fedoraproject.org/rpms/pyproject-rpm-macros

  

  BuildArch:      noarch
@@ -72,7 +82,7 @@ 

  mkdir -p %{buildroot}%{_rpmconfigdir}/redhat

  install -m 644 macros.pyproject %{buildroot}%{_rpmmacrodir}/

  install -m 644 pyproject_buildrequires.py %{buildroot}%{_rpmconfigdir}/redhat/

- 

+ install -m 644 generate_file_section.py  %{buildroot}%{_rpmconfigdir}/redhat/

  %if %{with tests}

  %check

  %{__python3} -m pytest -vv
@@ -82,11 +92,14 @@ 

  %files

  %{_rpmmacrodir}/macros.pyproject

  %{_rpmconfigdir}/redhat/pyproject_buildrequires.py

- 

+ %{_rpmconfigdir}/redhat/generate_file_section.py

  %doc README.md

  %license LICENSE

  

  %changelog

+ * Mon Feb 17 2020 Patrik Kopkan <pkopkan@redhat.com> - 0-13

+ - add %pyproject_save_file macro for generating file section

+ 

  * Wed Feb 05 2020 Miro Hrončok <mhroncok@redhat.com> - 0-12

  - Fallback to setuptools.build_meta:__legacy__ backend instead of setuptools.build_meta

  - Properly handle backends with colon

@@ -0,0 +1,6 @@ 

+ kerberos-1.3.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4

+ kerberos-1.3.0.dist-info/METADATA,sha256=ZLRjtEOsFUjO5gOL8XEZA9m-V1ayUeNz6ehNvCHf-00,5085

+ kerberos-1.3.0.dist-info/RECORD,,

+ kerberos-1.3.0.dist-info/WHEEL,sha256=ohybRue5bPR5MQUSq7c6AGl-iIAd0MXt_sfyYTZ1Rq8,104

+ kerberos-1.3.0.dist-info/top_level.txt,sha256=b07dCflqvOAEjUkeef-UGnR4feBslpNBJof69O7oA2s,9

+ kerberos.cpython-37m-x86_64-linux-gnu.so,sha256=EYqfkWOzHrj0kISjEAXCtGb7AWs4ZPLK8oWo32qwnQU,181784

file added
+9
@@ -0,0 +1,9 @@ 

+ __pycache__/mistune.cpython-38.pyc,,

+ mistune-0.8.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4

+ mistune-0.8.3.dist-info/LICENSE,sha256=DFJZw90KfEb0g1IhZF9ioGOMm5-qAq8IZ26AaeH_lks,1482

+ mistune-0.8.3.dist-info/METADATA,sha256=em5e2pPXINCvklOX9dEbh14XJjXyKIxv4ws7Gqvliyc,8390

+ mistune-0.8.3.dist-info/RECORD,,

+ mistune-0.8.3.dist-info/WHEEL,sha256=VhDzRVkjIQCHaI8B-spV-f4VqUney2V8tpBJUi2FE_Q,103

+ mistune-0.8.3.dist-info/top_level.txt,sha256=tjJTM65kAdwKAJ2mA769tnDGYYlfR8pqRsobKjVEfcg,8

+ mistune.cpython-38-x86_64-linux-gnu.so,sha256=tclP68lWttoR8qJMooacURG12Q0Ij3I5yzbFo7xsNPI,3959336

+ mistune.py,sha256=1CU_A107jEtx78PjEtq6c4ZHtKdDonRSJODPtwIReVc,35484 

\ No newline at end of file

file added
+42
@@ -0,0 +1,42 @@ 

+ requests-2.22.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4

+ requests-2.22.0.dist-info/LICENSE,sha256=vkGrrCxA-FMDB-jRcsWQtHb0pIi8amj43le3z2R4Zoc,582

+ requests-2.22.0.dist-info/METADATA,sha256=sJ1ZdIgF0uoV9U58VVoEZv1QTyMCpmc2MQnbkob3nsE,5523

+ requests-2.22.0.dist-info/RECORD,,

+ requests-2.22.0.dist-info/WHEEL,sha256=h_aVn5OB2IERUjMbi2pucmR_zzWJtk303YXvhh60NJ8,110

+ requests-2.22.0.dist-info/top_level.txt,sha256=fMSVmHfb5rbGOo6xv-O_tUX6j-WyixssE-SnwcDRxNQ,9

+ requests/__init__.py,sha256=PnKCgjcTq44LaAMzB-7--B2FdewRrE8F_vjZeaG9NhA,3921

+ requests/__pycache__/__init__.cpython-37.pyc,,

+ requests/__pycache__/__version__.cpython-37.pyc,,

+ requests/__pycache__/_internal_utils.cpython-37.pyc,,

+ requests/__pycache__/adapters.cpython-37.pyc,,

+ requests/__pycache__/api.cpython-37.pyc,,

+ requests/__pycache__/auth.cpython-37.pyc,,

+ requests/__pycache__/certs.cpython-37.pyc,,

+ requests/__pycache__/compat.cpython-37.pyc,,

+ requests/__pycache__/cookies.cpython-37.pyc,,

+ requests/__pycache__/exceptions.cpython-37.pyc,,

+ requests/__pycache__/help.cpython-37.pyc,,

+ requests/__pycache__/hooks.cpython-37.pyc,,

+ requests/__pycache__/models.cpython-37.pyc,,

+ requests/__pycache__/packages.cpython-37.pyc,,

+ requests/__pycache__/sessions.cpython-37.pyc,,

+ requests/__pycache__/status_codes.cpython-37.pyc,,

+ requests/__pycache__/structures.cpython-37.pyc,,

+ requests/__pycache__/utils.cpython-37.pyc,,

+ requests/__version__.py,sha256=Bm-GFstQaFezsFlnmEMrJDe8JNROz9n2XXYtODdvjjc,436

+ requests/_internal_utils.py,sha256=Zx3PnEUccyfsB-ie11nZVAW8qClJy0gx1qNME7rgT18,1096

+ requests/adapters.py,sha256=WelSM1BCQXdbjEuDsBxqKDADeY8BHmxlrwbNnLN2rr4,21344

+ requests/api.py,sha256=fbUo11QoLOoNgWU6FfvNz8vMj9bE_cMmICXBa7TZHJs,6271

+ requests/auth.py,sha256=QB2-cSUj1jrvWZfPXttsZpyAacQgtKLVk14vQW9TpSE,10206

+ requests/certs.py,sha256=dOB5rV2DZ13dEhq9BUa_4hd5kAqg59e_zUZB00faYz8,453

+ requests/compat.py,sha256=FVIeTOniQMHQkeE2JdJvar3OZ-b4IFh8aNezIn45zws,1678

+ requests/cookies.py,sha256=Y-bKX6TvW3FnYlE6Au0SXtVVWcaNdFvuAwQxw-G0iTI,18430

+ requests/exceptions.py,sha256=Q8YeWWxiHHXhkEynLpMgC_6_r_ZTYw2aITs9wCSAZNY,3185

+ requests/help.py,sha256=lLcBtKAar8T6T78e9Tc4Zfd_EEJFhntxgib1JHNctEI,3515

+ requests/hooks.py,sha256=QReGyy0bRcr5rkwCuObNakbYsc7EkiKeBwG4qHekr2Q,757

+ requests/models.py,sha256=bce6oORR26SY-dVPaqMpdBunD1zXzrgMSlH6jhfvuRA,34210

+ requests/packages.py,sha256=Q2rF0L5mc3wQAvc6q_lAVtPTDOaOeFgD-7kWSQLkjEQ,542

+ requests/sessions.py,sha256=DjbCotDW6xSAaBsjbW-L8l4N0UcwmrxVNgSrZgIjGWM,29332

+ requests/status_codes.py,sha256=XWlcpBjbCtq9sSqpH9_KKxgnLTf9Z__wCWolq21ySlg,4129

+ requests/structures.py,sha256=zoP8qly2Jak5e89HwpqjN1z2diztI-_gaqts1raJJBc,2981

+ requests/utils.py,sha256=LtPJ1db6mJff2TJSJWKi7rBpzjPS3mSOrjC9zRhoD3A,30049

file added
+5593
The added file is too large to be shown here, see it at: test_RECORD_tensorflow
file added
+11
@@ -0,0 +1,11 @@ 

+ ../../../bin/__pycache__/tldr.cpython-37.pyc,,

+ ../../../bin/tldr,sha256=6MUiLCWhldmV8OelT2dvPgS7q5GFwuhvd6th0Bb-LH4,12766

+ ../../../bin/tldr.py,sha256=6MUiLCWhldmV8OelT2dvPgS7q5GFwuhvd6th0Bb-LH4,12766

+ __pycache__/tldr.cpython-37.pyc,,

+ tldr-0.5.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4

+ tldr-0.5.dist-info/LICENSE,sha256=q7quAfjDWCYKC_WRk_uaP6d2wwVpOpVjUSkv8l6H7xI,1075

+ tldr-0.5.dist-info/METADATA,sha256=AN5nYUVxo_zkVaMGKu34YDWWif84oA6uxKmTab213vM,3850

+ tldr-0.5.dist-info/RECORD,,

+ tldr-0.5.dist-info/WHEEL,sha256=S8S5VL-stOTSZDYxHyf0KP7eds0J72qrK0Evu3TfyAY,92

+ tldr-0.5.dist-info/top_level.txt,sha256=xHSI9WD6Y-_hONbi2b_9RIn9oiO7RBGHU3A8geJq3mI,5

+ tldr.py,sha256=aJlA3tIz4QYYy8e7DZUhPyLCqTwnfFjA7Nubwm9bPe0,12779

@@ -0,0 +1,364 @@ 

+ import pytest

+ import os

+ from pathlib import Path

+ from pprint import pprint

+ from pprint import pformat

+ import generate_file_section

+ from generate_file_section import *

+ import tempfile

+ import warnings

+ import shutil

+ 

+ RECORDS_PATH = f"{Path(__file__).parent}"

+ 

+ 

+ def test_parse_record_kerberos():

+     """test if RECORD file is parsed properly"""

+     record_content = read_record(RECORDS_PATH, "test_RECORD_kerberos")

+     output = parse_record("/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/RECORD", record_content)

+     expected = ["/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/INSTALLER",

+                 "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/METADATA",

+                 "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/RECORD",

+                 "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/WHEEL",

+                 "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/top_level.txt",

+                 "/usr/lib64/python3.7/site-packages/kerberos.cpython-37m-x86_64-linux-gnu.so"]

+     assert output == expected

+ 

+ 

+ def test_parse_record_tensorflow():

+     """test if RECORD file is parsed properly"""

+     dist_info_dir = "tensorflow-2.1.0.dist-info"

+     dist_info_prefix = "/usr/lib64/python3.7/site-packages"

+ 

+     record_content = [

+         ["../../../bin/toco_from_protos", "sha256=W1RBTgnD8F2jVoq2RiIfW_Ph6HNm7Kw0Jz-1_4MANDU", "289"],

+         [

+             "../../../lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/base_collective_executor.h",

+             "sha256=7RAlc1tDVIXyRwVp3YaGHzQb9xzSXwUh89XYdN2JE-c", "1024"],

+         ["tensorflow-2.1.0.dist-info/METADATA", "sha256=g5W3QfLBbDHaqVmDvLXQIV2KfDFQe9zssq4fKz-Rah4", "2859"],

+     ]

+     output = parse_record(f"{dist_info_prefix}/{dist_info_dir}/RECORD", record_content)

+ 

+     pprint(output)

+     expected = ['/usr/bin/toco_from_protos',

+                 '/usr/lib/python3.7/site-packages/tensorflow_core/include/tensorflow/core/common_runtime/base_collective_executor.h',

+                 '/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/METADATA',

+                 ]

+     assert output == expected

+ 

+ 

+ def test_find_metadata():

+     """test if function returns list with all metadata paths"""

+     dist_info_dir = "kerberos-1.3.0.dist-info/"

+     dist_info_prefix = "/usr/lib64/python3.7/site-packages"

+     parsed_record_content = ["/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/INSTALLER",

+                              "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/METADATA",

+                              "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/RECORD",

+                              "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/WHEEL",

+                              "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/top_level.txt",

+                              "/usr/lib64/python3.7/site-packages/kerberos.cpython-37m-x86_64-linux-gnu.so"]

+     expected = ("/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/",

+                 ["/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/INSTALLER",

+                  "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/METADATA",

+                  "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/RECORD",

+                  "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/WHEEL",

+                  "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/top_level.txt", ])

+ 

+     record_path = os.path.join(dist_info_prefix, dist_info_dir, "RECORD")

+ 

+     tested = find_metadata(parsed_record_content, dist_info_prefix, record_path)

+     assert tested == expected

+ 

+ 

+ def test_find_extension():

+     """test list of extension"""

+     parsed_record_content = ["/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/INSTALLER",

+                              "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/METADATA",

+                              "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/RECORD",

+                              "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/WHEEL",

+                              "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/top_level.txt",

+                              "/usr/lib64/python3.7/site-packages/tensorflow_core/python/ops/__pycache__/gen_state_ops.cpython-37.pyc",

+                              "/usr/lib64/python3.7/site-packages/kerberos.cpython-37m-x86_64-linux-gnu.so"]

+ 

+     assert find_extension("/usr/lib64/python3.7/site-packages", parsed_record_content) == [

+         "/usr/lib64/python3.7/site-packages/kerberos.cpython-37m-x86_64-linux-gnu.so"]

+ 

+ 

+ # def test_find_extension_mistune():

+ #     """test list of extensions for mistune package"""

+ #     parsed_record_content = []

+ 

+ def test_find_script():

+     dist_info_dir = "tldr-0.5.dist-info/"

+     python3_sitedir = "/usr/lib64/python3.7/site-packages"

+     record_content = read_record(RECORDS_PATH, "test_RECORD_tldr")

+     record_path = os.path.join(python3_sitedir, dist_info_dir, "RECORD")

+     parsed_record_content = parse_record(record_path, record_content)

+     expected = (["/usr/lib64/python3.7/site-packages/tldr.py"],

+                 ["/usr/lib64/python3.7/site-packages/__pycache__/tldr.cpython-37.pyc"]

+                 )

+ 

+     tested = find_script(python3_sitedir, parsed_record_content)

+     assert tested == expected

+ 

+ 

+ def test_find_package():

+     dist_info_dir = "requests-2.22.0.dist-info/"

+     python3_sitedir = "/usr/lib/python3.7/site-packages"

+     python3_sitearch = "/usr/lib64/python3.7/site-packages"

+     record_content = read_record(RECORDS_PATH, "test_RECORD_requests")

+     record_path = os.path.join(python3_sitedir, dist_info_dir, "RECORD")

+     parsed_record_content = parse_record(record_path, record_content)

+ 

+     tested = find_package(python3_sitedir, python3_sitearch, parsed_record_content)

+     expected = ({"/usr/lib/python3.7/site-packages/requests/"},

+                 ["/usr/lib/python3.7/site-packages/requests/__init__.py",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/__init__.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/__version__.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/_internal_utils.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/adapters.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/api.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/auth.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/certs.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/compat.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/cookies.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/exceptions.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/help.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/hooks.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/models.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/packages.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/sessions.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/status_codes.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/structures.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__pycache__/utils.cpython-37.pyc",

+                  "/usr/lib/python3.7/site-packages/requests/__version__.py",

+                  "/usr/lib/python3.7/site-packages/requests/_internal_utils.py",

+                  "/usr/lib/python3.7/site-packages/requests/adapters.py",

+                  "/usr/lib/python3.7/site-packages/requests/api.py",

+                  "/usr/lib/python3.7/site-packages/requests/auth.py",

+                  "/usr/lib/python3.7/site-packages/requests/certs.py",

+                  "/usr/lib/python3.7/site-packages/requests/compat.py",

+                  "/usr/lib/python3.7/site-packages/requests/cookies.py",

+                  "/usr/lib/python3.7/site-packages/requests/exceptions.py",

+                  "/usr/lib/python3.7/site-packages/requests/help.py",

+                  "/usr/lib/python3.7/site-packages/requests/hooks.py",

+                  "/usr/lib/python3.7/site-packages/requests/models.py",

+                  "/usr/lib/python3.7/site-packages/requests/packages.py",

+                  "/usr/lib/python3.7/site-packages/requests/sessions.py",

+                  "/usr/lib/python3.7/site-packages/requests/status_codes.py",

+                  "/usr/lib/python3.7/site-packages/requests/structures.py",

+                  "/usr/lib/python3.7/site-packages/requests/utils.py"])

+ 

+     pprint(tested)

+     assert tested == expected

+ 

+ # [packagename: (expected path in buildroot, relative path to test RECORD file)]

+ TEST_RECORDS = {

+     "kerberos": ("/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/RECORD", "test_RECORD_kerberos"),

+     "requests": ("/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/RECORD", "test_RECORD_requests"),

+     "tensorflow": ("/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/RECORD", "test_RECORD_tensorflow"),

+     "tldr": ("/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/RECORD", "test_RECORD_tldr"),

+     "mistune": ("/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/RECORD", "test_RECORD_mistune")

+ }

+ 

+ test_data = []

+ from classify_paths_output import PARAMETRIZED_EXPECTED_OUTPUT

+ 

+ for package in TEST_RECORDS:

+     test_data.append((*TEST_RECORDS[package], PARAMETRIZED_EXPECTED_OUTPUT[package]))

+ 

+ del package

+ 

+ 

+ @pytest.mark.filterwarnings('ignore::UserWarning')  # to ignore warning for uncathegorized files

+ @pytest.mark.parametrize("supposed_record_path, rel_record_path, expected", test_data)

+ def test_classify_paths(supposed_record_path, rel_record_path, expected):

+     """test categorization of files"""

+     root = str(Path(RECORDS_PATH).parent)

+     python3_sitelib = "/usr/lib/python3.7/site-packages"

+     python3_sitearch = "/usr/lib64/python3.7/site-packages"

+     bindir = "/usr/bin"

+ 

+     record_contents = read_record(RECORDS_PATH, rel_record_path)

+     record_contents = parse_record(supposed_record_path,

+                                    record_contents)

+ 

+     output = classify_paths(supposed_record_path, record_contents, python3_sitelib, python3_sitearch, bindir)

+     assert output == expected

+ 

+ 

+ def test_warning_classify_paths():

+     """test categorization of files"""

+     supposed_record_path, rel_record_path = TEST_RECORDS["tensorflow"]

+     warned_files = PARAMETRIZED_EXPECTED_OUTPUT["tensorflow"]["other"]["files"]

+     root = str(Path(RECORDS_PATH).parent)

+     python3_sitelib = "/usr/lib/python3.7/site-packages"

+     python3_sitearch = "/usr/lib64/python3.7/site-packages"

+     bindir = "/usr/bin"

+ 

+     record_contents = read_record(RECORDS_PATH, rel_record_path)

+     record_contents = parse_record(supposed_record_path,

+                                    record_contents)

+ 

+     with pytest.warns(UserWarning) as record:

+         output = classify_paths(supposed_record_path, record_contents, python3_sitelib, python3_sitearch, bindir)

+ 

+     assert pformat(warned_files) in record[0].message.args[0]

+ 

+ 

+ file_section = (

+     ("tensorflow", "tensorflow*", sorted([

+         "/usr/lib64/python3.7/site-packages/tensorflow/", "/usr/lib64/python3.7/site-packages/tensorflow_core/",

+         "/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/INSTALLER",

+         "/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/METADATA",

+         "/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/RECORD",

+         "/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/WHEEL",

+         "/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/entry_points.txt",

+         "/usr/lib64/python3.7/site-packages/tensorflow-2.1.0.dist-info/top_level.txt",

+     ])),

+     ("kerberos", "ke?ber*", sorted(["/usr/lib64/python3.7/site-packages/kerberos.cpython-37m-x86_64-linux-gnu.so",

+                              "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/INSTALLER",

+                              "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/METADATA",

+                              "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/RECORD",

+                              "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/WHEEL",

+                              "/usr/lib64/python3.7/site-packages/kerberos-1.3.0.dist-info/top_level.txt",

+                              ])),

+     ("requests", "requests", sorted(["/usr/lib/python3.7/site-packages/requests/",

+                               "/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/INSTALLER",

+                               "/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/LICENSE",

+                               "/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/METADATA",

+                               "/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/RECORD",

+                               "/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/WHEEL",

+                               "/usr/lib/python3.7/site-packages/requests-2.22.0.dist-info/top_level.txt",

+                               ])),

+     ("tldr", "tldr", sorted(["/usr/lib/python3.7/site-packages/__pycache__/tldr.cpython-37{,.opt-?}.pyc",

+                               "/usr/lib/python3.7/site-packages/tldr.py",

+                               "/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/INSTALLER",

+                               "/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/LICENSE",

+                               "/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/METADATA",

+                               "/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/RECORD",

+                               "/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/WHEEL",

+                               "/usr/lib/python3.7/site-packages/tldr-0.5.dist-info/top_level.txt",

+                               ])),

+ 

+     ("mistune", "mistune", sorted([

+         "/usr/lib64/python3.7/site-packages/__pycache__/mistune.cpython-37{,.opt-?}.pyc",

+         "/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/INSTALLER",

+         "/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/LICENSE",

+         "/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/METADATA",

+         "/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/RECORD",

+         "/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/WHEEL",

+         "/usr/lib64/python3.7/site-packages/mistune-0.8.3.dist-info/top_level.txt",

+         "/usr/lib64/python3.7/site-packages/mistune.py",

+         "/usr/lib64/python3.7/site-packages/mistune.cpython-38-x86_64-linux-gnu.so"

+     ]))

+ )

+ 

+ 

+ @pytest.mark.parametrize("package, glob, expected", file_section)

+ def test_generate_file_list(package, glob, expected):

+     """test glob at output of classify_paths"""

+     paths_dict = PARAMETRIZED_EXPECTED_OUTPUT[package]

+     modules_glob = (glob,)

+ 

+     tested = generate_file_list(paths_dict, modules_glob)

+ 

+     assert tested == expected

+ 

+ 

+ @pytest.mark.parametrize("package, glob, expected", file_section)

+ def test_generate_file_list_with_executables(package, glob, expected):

+     """test glob at output of classify_paths"""

+     paths_dict = PARAMETRIZED_EXPECTED_OUTPUT[package]

+     executables = PARAMETRIZED_EXPECTED_OUTPUT[package]["executables"]["files"]

+     modules_glob = (glob,)

+     files = sorted(expected + executables)

+     tested = generate_file_list(paths_dict, modules_glob, include_executables=True)

+ 

+     assert tested == files

+ 

+ 

+ def test_pyproject_save_files_parse():

+     tested = [pyproject_save_files_parse(["requests*", "kerberos", "+bindir"]),

+               pyproject_save_files_parse(["tldr", "tensorf*"])]

+ 

+     expected = [[["requests*", "kerberos"], True], [["tldr", "tensorf*"], False]]

+     assert tested == expected

+ 

+ 

+ def create_root(tmp_path, record_path, rel_path_record):

+     """create mock buildroot in tmp_path

+ 

+     parameters:

+     tmp_path: path where buildroot should be created

+     record_path: expected path found in buildroot

+     rel_path_record: relative path to test RECORD file

+ 

+     example:

+     create_root(tmp_path, '/usr/lib/python/tldr-0.5.dist-info/RECORD', 'test_RECORD_tldr')

+     -> copy RECORD file and creates subdirectories tmp/buildroot/usr/lib/python/tldr-0.5.dist-info/RECORD'

+     """

+ 

+     dist_info_path =  "/".join(record_path.split("/")[:-1])

+     src = os.path.join(RECORDS_PATH, rel_path_record)

+     dest = f"{tmp_path}/buildroot/{record_path}"

+     os.makedirs(f"{tmp_path}/buildroot/{dist_info_path}")

+     shutil.copy(src, dest)

+     return f"{tmp_path}/buildroot/"

+ 

+ 

+ def test_cli(tmp_path):

+     """test cli"""

+ 

+     expected = file_section[3][2]

+ 

+     mock_root = create_root(tmp_path, *TEST_RECORDS["tldr"])

+ 

+     buildir = tmp_path / "builddir"

+     buildir.mkdir()

+     pyproject_files_path = buildir / "files"

+     cli_args = parser.parse_args([str(pyproject_files_path),

+                                   mock_root,

+                                   "/usr/lib/python3.7/site-packages",

+                                   "/usr/lib64/python3.7/site-packages", "/usr/bin", "tldr*"])

+ 

+     main(cli_args)

+     with open(pyproject_files_path, "r") as file:

+         tested = file.readlines()

+         expected = [path + "\n" for path in expected]

+         assert tested == expected

+ 

+ 

+ def test_not_find_RECORD(tmp_path):

+     """test if program raises error on not finding RECORD file"""

+ 

+     mock_root = create_root(tmp_path, "/usr/lib/RECORD", TEST_RECORDS["tldr"][1])

+ 

+     buildir = tmp_path / "builddir"

+     buildir.mkdir()

+     pyproject_files_path = buildir / "files"

+     cli_args = parser.parse_args([str(pyproject_files_path),

+                                   mock_root,

+                                   "/usr/lib/python3.7/site-packages",

+                                   "/usr/lib64/python3.7/site-packages", "/usr/bin", "tldr*"])

+ 

+     with pytest.raises(FileNotFoundError):

+         main(cli_args)

+ 

+ 

+ def test_find_too_many_RECORDS(tmp_path):

+     """test if program raises error on finding multiple RECORD files"""

+ 

+     mock_root = create_root(tmp_path, *TEST_RECORDS["tldr"])

+     create_root(tmp_path, *TEST_RECORDS["tensorflow"])

+ 

+     buildir = tmp_path / "builddir"

+     buildir.mkdir()

+     pyproject_files_path = buildir / "files"

+     cli_args = parser.parse_args([str(pyproject_files_path),

+                                   mock_root,

+                                   "/usr/lib/python3.7/site-packages",

+                                   "/usr/lib64/python3.7/site-packages", "/usr/bin", "tldr*"])

+ 

+     with pytest.raises(FileExistsError):

+         main(cli_args)

file modified
+2 -3
@@ -12,7 +12,7 @@ 

  BuildRequires:  pyproject-rpm-macros

  

  %description

- %{summary}.

+ Tests building with the poetry build backend.

  

  

  %package -n python3-%{pypi_name}
@@ -37,10 +37,9 @@ 

  

  %install

  %pyproject_install

+ %pyproject_save_files clikit

  

  

  %files -n python3-%{pypi_name}

  %doc README.md

  %license LICENSE

- %{python3_sitelib}/%{pypi_name}/

- %{python3_sitelib}/%{pypi_name}-%{version}.dist-info/

@@ -11,7 +11,10 @@ 

  BuildRequires:  pyproject-rpm-macros

  

  %description

- Discover and load entry points from installed packages.

+ This package contains one .py module

+ Building this tests:

+ - the flit build backend

+ - the %%{python3_sitelib}/__pycache__ directory is not listed in %%pyproject_files

  

  

  %package -n python3-%{pypi_name}
@@ -19,8 +22,7 @@ 

  %{?python_provide:%python_provide python3-%{pypi_name}}

  

  %description -n python3-%{pypi_name}

- Discover and load entry points from installed packages.

- 

+ %{summary}.

  

  %prep

  %autosetup -p1 -n %{pypi_name}-%{version}
@@ -28,6 +30,7 @@ 

  

  %generate_buildrequires

  %pyproject_buildrequires

+ %pyproject_save_files entrypoints

  

  

  %build
@@ -38,9 +41,6 @@ 

  %pyproject_install

  

  

- %files -n python3-%{pypi_name}

+ %files -n python3-%{pypi_name} -f %{pyproject_files}

  %doc README.rst

  %license LICENSE

- %{python3_sitelib}/entrypoints-*.dist-info/

- %{python3_sitelib}/entrypoints.py

- %{python3_sitelib}/__pycache__/entrypoints.*

@@ -0,0 +1,53 @@ 

+ %global modname isort

+ 

+ Name:               python-%{modname}

+ Version:            4.3.21

+ Release:            7%{?dist}

+ Summary:            Python utility / library to sort Python imports

+ 

+ License:            MIT

+ URL:                https://github.com/timothycrosley/%{modname}

+ Source0:            %{url}/archive/%{version}-2/%{modname}-%{version}-2.tar.gz

+ BuildArch:          noarch

+ BuildRequires:      pyproject-rpm-macros

+ 

+ %description

+ This package contains executables.

+ Building this tests that executables are not listed when +bindir is not used with %%pyproject_save_files.

+ 

+ %package -n python3-%{modname}

+ Summary:            %{summary}

+ %{?python_provide:%python_provide python%{python3_pkgversion}-%{modname}}

+ 

+ 

+ %description -n python3-%{modname}

+ %{summary}.

+ 

+ %prep

+ %autosetup -n %{modname}-%{version}-2

+ %generate_buildrequires

+ %pyproject_buildrequires -r

+ 

+ # Drop shebang

+ sed -i -e '1{\@^#!.*@d}' %{modname}/main.py

+ 

+ %build

+ %pyproject_wheel

+ 

+ %install

+ %pyproject_install

+ %pyproject_save_files isort

+ 

+ # check if the instalation outputs expected result

+ test -d "%{buildroot}%{python3_sitelib}/%{modname}/"

+ test -d "%{buildroot}%{python3_sitelib}/%{modname}-%{version}.dist-info/"

+ 

+ # testing not using +bindir in %%pyproject_save_files, make sure if the files get listed build will fail

+ # This line must come after %pyproject_save_files so the test is effective

+ rm -r %{buildroot}%{_bindir}/%{modname}

+ 

+ 

+ %files -n python3-%{modname} -f %{pyproject_files}

+ %doc README.rst *.md

+ %license LICENSE

+ 

@@ -0,0 +1,82 @@ 

+ # global prerelease b4

+ 

+ 

+ # workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1806625

+ %global debug_package %{nil}

+ 

+ Name: python-ldap

+ Version: 3.1.0

+ Release: 9%{?dist}

+ License: Python

+ Summary: An object-oriented API to access LDAP directory servers

+ URL: http://python-ldap.org/

+ Source0: https://files.pythonhosted.org/packages/source/p/%{name}/%{name}-%{version}%{?prerelease}.tar.gz

+ 

+ BuildRequires: pyproject-rpm-macros

+ 

+ ### Build Dependencies ###

+ BuildRequires: openldap-devel

+ BuildRequires: openssl-devel

+ BuildRequires: cyrus-sasl-devel

+ %generate_buildrequires

+ %pyproject_buildrequires -t

+ 

+ %description

+ This package contains extension modules. Does not contain pyproject.toml. Has multiple files and directories.

+ Building this tests:

+ - the proper files are installed in the proper places

+ - module glob in %pyproject_save_files (some modules are included, some not)

+ 

+ 

+ %package -n     python3-ldap

+ Summary:        %{summary}

+ 

+ Requires:  openldap

+ Requires:  python3-pyasn1 >= 0.3.7

+ Requires:  python3-pyasn1-modules >= 0.1.5

+ Requires:  python3-setuptools

+ %{?python_provide:%python_provide python3-ldap}

+ 

+ %description -n python3-ldap

+ %{summary}

+ 

+ 

+ %prep

+ 

+ 

+ %setup -q -n %{name}-%{version}%{?prerelease}

+ 

+ # Disable warnings in test to work around "'U' mode is deprecated"

+ # https://github.com/python-ldap/python-ldap/issues/96

+ sed -i 's,-Werror,-Wignore,g' tox.ini

+ 

+ %build

+ %pyproject_wheel

+ 

+ %install

+ %pyproject_install

+ %pyproject_save_files ldap* *ldap

+ 

+ %check

+ # don't download packages

+ #export PIP_INDEX_URL=http://host.invalid./

+ #export PIP_NO_DEPS=yes

+ LOGLEVEL=10 %tox -- --sitepackages

+ 

+ # check if the instalation outputs expected files

+ test -d "%{buildroot}%{python3_sitearch}/__pycache__/" 

+ test -d "%{buildroot}%{python3_sitearch}/python_ldap-%{version}.dist-info/" 

+ test -d "%{buildroot}%{python3_sitearch}/ldap/" 

+ test -f "%{buildroot}%{python3_sitearch}/ldapurl.py" 

+ test -f "%{buildroot}%{python3_sitearch}/ldif.py" 

+ test -d "%{buildroot}%{python3_sitearch}/slapdtest" 

+ test -n "$(find '%{buildroot}%{python3_sitearch}' -maxdepth 1 -name '_ldap.cpython-*.so' -print -quit)"

+ 

+ # Not supposed to be listed in %{pyproject_files}. Making sure build will fail if they got listed.

+ rm -rf %{buildroot}%{python3_sitearch}/ldif.py

+ rm -rf %{buildroot}%{python3_sitearch}/__pycache__/ldif.cpython*.pyc

+ rm -rf %{buildroot}%{python3_sitearch}/slapdtest/

+ 

+ %files -n python3-ldap -f %{pyproject_files}

+ %license LICENCE

+ %doc CHANGES README TODO Demo 

\ No newline at end of file

@@ -0,0 +1,57 @@ 

+ # workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1806625

+ %global debug_package %{nil}

+ 

+ Name:           python-mistune

+ Version:        0.8.3

+ Release:        11%{?dist}

+ Summary:        Markdown parser for Python

+ 

+ License:        BSD

+ URL:            https://github.com/lepture/mistune

+ Source0:        %{url}/archive/v%{version}.tar.gz

+ 

+ BuildRequires:  gcc

+ BuildRequires:  pyproject-rpm-macros

+ 

+ # optional dependency, listed explicitly to have the extension module:

+ BuildRequires:  python3-Cython

+ 

+ %description

+ This package contains an extension module. Does not contain pyproject.toml. Has a script (.py) and extension (.so) with the same name.

+ Building this tests:

+ - installing both a script and an extension with the same name

+ - default build backend without pyproject.toml

+ 

+ 

+ %package -n python3-mistune

+ Summary:        %summary

+ %{?python_provide:%python_provide python3-mistune}

+ 

+ %description -n python3-mistune

+ %{summary}

+ 

+ %prep

+ %autosetup -n mistune-%{version}

+ 

+ %generate_buildrequires

+ %pyproject_buildrequires

+ 

+ %build

+ %pyproject_wheel

+ 

+ %install

+ %pyproject_install

+ %pyproject_save_files mistune

+ 

+ %check

+ # making sure that pyproject_install outputs these files so that we can test behaviour of %pyproject_save_files

+ # when a package has multiple files with the same name (here script and extension)

+ test -f "%{buildroot}%{python3_sitearch}/mistune.py" 

+ test -d "%{buildroot}%{python3_sitearch}/__pycache__/" 

+ test -n "$(find '%{buildroot}%{python3_sitearch}' -maxdepth 1 -name 'mistune.cpython-*.so' -print -quit)" 

+ test -d "%{buildroot}%{python3_sitearch}/mistune-%{version}.dist-info/" 

+ 

+ 

+ %files -n python3-mistune -f %{pyproject_files}

+ %doc README.rst

+ %license LICENSE

file modified
+8 -4
@@ -12,7 +12,12 @@ 

  BuildRequires:  pyproject-rpm-macros

  

  %description

- %{summary}.

+ A pure Python library. The package contains tox.ini. Does not contain executables.

+ Building this tests:

+ - generating runtime and testing dependencies

+ - running tests with %%tox

+ - the %%pyproject_save_files +bindir option works without actual executables

+ - pyproject.toml with the setuptools backend and setuptools-scm

  

  

  %package -n python3-%{pypi_name}
@@ -37,14 +42,13 @@ 

  

  %install

  %pyproject_install

+ %pyproject_save_files pluggy +bindir

  

  

  %check

  %tox

  

  

- %files -n python3-%{pypi_name}

+ %files -n python3-%{pypi_name} -f %{pyproject_files}

  %doc README.rst

  %license LICENSE

- %{python3_sitelib}/%{pypi_name}/

- %{python3_sitelib}/%{pypi_name}-%{version}.dist-info/

file modified
+7 -10
@@ -11,8 +11,11 @@ 

  BuildRequires:  pyproject-rpm-macros

  

  %description

- py.test provides simple, yet powerful testing for Python.

- 

+ This is a pure Python package with executables. It has a test suite in tox.ini and test dependencies specified via the [test] extra.

+ Building this tests:

+ - generating runtime and test dependencies by both tox.ini and extras

+ - pyproject.toml with the setuptools backend and setuptools-scm

+ - passing arguments into %%tox

  

  %package -n python3-%{pypi_name}

  Summary:        %{summary}
@@ -28,7 +31,7 @@ 

  

  %generate_buildrequires

  %pyproject_buildrequires -x testing -t

- 

+ %pyproject_save_files *pytest +bindir

  

  %build

  %pyproject_wheel
@@ -43,13 +46,7 @@ 

  %tox -- -- -k metafunc

  

  

- %files -n python3-%{pypi_name}

+ %files -n python3-%{pypi_name} -f %{pyproject_files}

  %doc README.rst

  %doc CHANGELOG.rst

  %license LICENSE

- %{_bindir}/pytest

- %{_bindir}/py.test

- %{python3_sitelib}/pytest-*.dist-info/

- %{python3_sitelib}/_pytest/

- %{python3_sitelib}/pytest.py

- %{python3_sitelib}/__pycache__/pytest.*

file modified
+12
@@ -28,6 +28,18 @@ 

      - tldr:

          dir: .

          run: ./mocktest.sh tldr

+     - kerberos:

+         dir: .

+         run: ./mocktest.sh python-kerberos

+     - ldap:

+         dir: .

+         run: ./mocktest.sh python-ldap

+     - isort:

+         dir: .

+         run: ./mocktest.sh python-isort

+     - mistune:

+         dir: .

+         run: ./mocktest.sh python-kerberos

      required_packages:

      - mock

      - rpmdevtools

file modified
+9 -7
@@ -11,7 +11,10 @@ 

  BuildRequires:  pyproject-rpm-macros

  

  %description

- %{summary}.

+ A Python package containing executables.

+ Building this tests:

+ - there are no bytecompiled files in %%{_bindir}

+ - the executable's shebang is adjusted properly

  

  %prep

  %autosetup -n %{name}-%{version}
@@ -24,16 +27,15 @@ 

  

  %install

  %pyproject_install

+ %pyproject_save_files tldr +bindir

  

  %check

  test ! -d %{buildroot}%{_bindir}/__pycache__

+ 

+ # tests if we get a proper shebang line

  head -n1 %{buildroot}%{_bindir}/%{name}.py | egrep '#!\s*%{python3}\s+%{py3_shbang_opts}\s*$'

  

- %files

+ %files -f %pyproject_files

  %license LICENSE

  %doc README.md

- %{_bindir}/%{name}

- %{_bindir}/%{name}.py

- %{python3_sitelib}/%{name}.py

- %{python3_sitelib}/__pycache__/*.pyc

- %{python3_sitelib}/%{name}-%{version}.dist-info/

+ 

4 new commits added

  • test failing of program
  • rewrite test
  • add %pyproject_save_files macro
  • add script for generating files in file section
4 years ago

3 new commits added

  • fix small thinks like not writing macro to %pyproject_files
  • modifie test specs to generate file section
  • fix typos in macros
4 years ago

1 new commit added

  • changed specfile
4 years ago

1 new commit added

  • add another test specfile
4 years ago

1 new commit added

  • test glob in %pyproject_save_files
4 years ago

3 new commits added

  • add test specfiles
  • move tests to toplevel directory
  • add comment
4 years ago

13 new commits added

  • add test specfiles
  • move tests to toplevel directory
  • add comment
  • test glob in %pyproject_save_files
  • add another test specfile
  • changed specfile
  • fix small thinks like not writing macro to %pyproject_files
  • modifie test specs to generate file section
  • fix typos in macros
  • test failing of program
  • rewrite test
  • add %pyproject_save_files macro
  • add script for generating files in file section
4 years ago

1 new commit added

  • update specfile to new tests
4 years ago

4 new commits added

  • append test specfiles to test yaml
  • add to specfile RECORD_mistune
  • handle cases where diferrent modules have same name
  • fix test specfiles
4 years ago

3 new commits added

  • simplify test specfiles
  • fix python %pycached implementation
  • rename test records
4 years ago

22 new commits added

  • changed specfile
  • simplify test specfiles
  • fix python %pycached implementation
  • rename test records
  • append test specfiles to test yaml
  • add to specfile RECORD_mistune
  • handle cases where diferrent modules have same name
  • fix test specfiles
  • update specfile to new tests
  • add test specfiles
  • move tests to toplevel directory
  • add comment
  • test glob in %pyproject_save_files
  • add another test specfile
  • changed specfile
  • fix small thinks like not writing macro to %pyproject_files
  • modifie test specs to generate file section
  • fix typos in macros
  • test failing of program
  • rewrite test
  • add %pyproject_save_files macro
  • add script for generating files in file section
4 years ago

rebased onto 3e7d354

4 years ago

Pull-Request has been closed by pkopkan

4 years ago