Exemplo n.º 1
0
  def testSaveReferenceResolver(self):
    duplicate_of = {'AClass': ['AClass2']}
    is_fragment = {
        'tf': False,
        'tf.VERSION': True,
        'tf.AClass': False,
        'tf.AClass.method': True,
        'tf.AClass2': False,
        'tf.function': False
    }
    py_module_names = ['tf', 'tfdbg']

    resolver = reference_resolver_lib.ReferenceResolver(
        duplicate_of=duplicate_of,
        is_fragment=is_fragment,
        py_module_names=py_module_names)

    outdir = self.workdir

    filepath = os.path.join(outdir, 'resolver.json')

    resolver.to_json_file(filepath)
    resolver2 = reference_resolver_lib.ReferenceResolver.from_json_file(
        filepath)

    # There are no __slots__, so all fields are visible in __dict__.
    self.assertEqual(resolver.__dict__, resolver2.__dict__)
Exemplo n.º 2
0
  def test_partial_symbol_references(self, string, link):
    duplicate_of = {
        'tf.matmul': 'tf.linalg.matmul',
        'tf.layers.Conv2d': 'tf.keras.layers.Conv2D',
    }

    is_fragment = {
        'tf.keras.Model.fit': True,
        'tf.concat': False,
        'tf.keras.layers.Conv2D': False,
        'tf.linalg.matmul': False,
        'tf.compat.v1.math.deprecated': False,
        'tf.compat.v1.linalg.matmul': False,
        'tf.contrib.y.z': False,
    }

    py_module_names = ['tf']

    resolver = reference_resolver_lib.ReferenceResolver(
        duplicate_of=duplicate_of,
        is_fragment=is_fragment,
        py_module_names=py_module_names,
        link_prefix='..')
    input_string = string.join('``')
    ref_string = resolver.replace_references(input_string)

    if link is None:
      expected = input_string
    else:
      expected = self.REF_TEMPLATE.format(link=link, text=string)

    self.assertEqual(expected, ref_string)
Exemplo n.º 3
0
    def test_duplicate_fragment(self):
        duplicate_of = {
            'tf.Class2.method': 'tf.Class1.method',
            'tf.sub.Class2.method': 'tf.Class1.method',
            'tf.sub.Class2': 'tf.Class2'
        }
        is_fragment = {
            'tf.Class1.method': True,
            'tf.Class2.method': True,
            'tf.sub.Class2.method': True,
            'tf.Class1': False,
            'tf.Class2': False,
            'tf.sub.Class2': False
        }
        py_module_names = ['tf']

        reference_resolver = reference_resolver_lib.ReferenceResolver(
            duplicate_of, is_fragment, py_module_names, link_prefix='')

        # Method references point to the method, in the canonical class alias.
        result = reference_resolver.reference_to_url('tf.Class1.method')
        self.assertEqual('tf/Class1.md#method', result)
        result = reference_resolver.reference_to_url('tf.Class2.method')
        self.assertEqual('tf/Class2.md#method', result)
        result = reference_resolver.reference_to_url('tf.sub.Class2.method')
        self.assertEqual('tf/Class2.md#method', result)

        # Class references point to the canonical class alias
        result = reference_resolver.reference_to_url('tf.Class1')
        self.assertEqual('tf/Class1.md', result)
        result = reference_resolver.reference_to_url('tf.Class2')
        self.assertEqual('tf/Class2.md', result)
        result = reference_resolver.reference_to_url('tf.sub.Class2')
        self.assertEqual('tf/Class2.md', result)
Exemplo n.º 4
0
 def setUp(self):
     super().setUp()
     self.known_object = object()
     reference_resolver = reference_resolver_lib.ReferenceResolver(
         duplicate_of={},
         is_fragment={
             'tfdocs.api_generator.signature.extract_decorators': False
         },
         py_module_names=[])
     self.parser_config = config.ParserConfig(
         reference_resolver=reference_resolver,
         duplicates={},
         duplicate_of={},
         tree={},
         index={},
         reverse_index={
             id(self.known_object):
             'location.of.object.in.api',
             id(signature.extract_decorators):
             'tfdocs.api_generator.signature.extract_decorators',
         },
         base_dir='/',
         code_url_prefix='/')