You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@beam.apache.org by GitBox <gi...@apache.org> on 2023/01/13 22:14:08 UTC
[GitHub] [beam] Abacn commented on pull request #25007: Fix PipelineOptionTest.test_display_data
Abacn commented on PR #25007:
URL: https://github.com/apache/beam/pull/25007#issuecomment-1382453506
ref: https://stackoverflow.com/questions/52428679/how-to-remove-classes-from-subclasses
tested this approach should work. Code snippet:
```python
from apache_beam.options.pipeline_options import PipelineOptions
class PipelineOptionTest:
class UserDefinedOptions(PipelineOptions):
@classmethod
def _add_argparse_args(cls, parser):
parser.add_value_provider_argument('--gcs_location')
@classmethod
def setUpClass(cls):
cls.UserDefinedOptions = PipelineOptionTest.UserDefinedOptions
def tearDown(self):
# Unset the option added in setupClass to avoid interfere with other tests
del PipelineOptionTest.UserDefinedOptions
import gc
gc.collect()
def run(self):
print(PipelineOptions.__subclasses__())
x = PipelineOptions().get_all_options()
print(x)
if __name__ == '__main__':
test_instance = PipelineOptionTest()
test_instance.setUpClass()
test_instance.run()
test_instance.tearDown()
test_instance.run()
```
output:
>>>
{'runner': None, ... 's3_region_name': None, 's3_api_version': None, 's3_verify': None, 's3_disable_ssl': False, 'gcs_location': <apache_beam.options.value_provider.RuntimeValueProvider object at 0x1288d3c70>}
{'runner': None, ... 's3_region_name': None, 's3_api_version': None, 's3_verify': None, 's3_disable_ssl': False}
>>>
as can be seen the second run there is no longer `--gcs_location`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@beam.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org