本文整理汇总了Python中sources.models.SourceVersion类的典型用法代码示例。如果您正苦于以下问题:Python SourceVersion类的具体用法?Python SourceVersion怎么用?Python SourceVersion使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SourceVersion类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_source_version_create_negative__same_mnemonic
def test_source_version_create_negative__same_mnemonic(self):
source_version = SourceVersion(
name='version1',
mnemonic='version1',
versioned_object=self.source1,
created_by=self.user1,
updated_by=self.user1,
)
source_version.full_clean()
source_version.save()
self.assertEquals(1, self.source1.num_versions)
with self.assertRaises(ValidationError):
source_version = SourceVersion(
name='version1',
mnemonic='version1',
versioned_object=self.source1,
created_by=self.user1,
updated_by=self.user1,
)
source_version.full_clean()
source_version.save()
self.assertEquals(1, self.source1.num_versions)
开发者ID:rkorytkowski,项目名称:oclapi,代码行数:25,代码来源:tests.py
示例2: test_persist_changes_negative__parent_version_is_self
def test_persist_changes_negative__parent_version_is_self(self):
version1 = SourceVersion.for_base_object(self.source1, 'version1', released=True)
version1.full_clean()
version1.save()
mnemonic = version1.mnemonic
released = version1.released
description = version1.description
external_id = version1.external_id
id = version1.id
version1._parent_version_mnemonic = mnemonic
version1.released = not released
version1.description = "%s-prime" % description
version1.external_id = "%s-prime" % external_id
errors = SourceVersion.persist_changes(version1)
self.assertEquals(1, len(errors))
self.assertTrue('parentVersion' in errors)
version1 = SourceVersion.objects.get(id=id)
self.assertEquals(self.source1, version1.versioned_object)
self.assertEquals(1, self.source1.num_versions)
self.assertEquals(version1, SourceVersion.get_latest_version_of(self.source1))
self.assertEquals(mnemonic, version1.mnemonic)
self.assertEquals(released, version1.released)
self.assertEquals(description, version1.description)
self.assertEquals(external_id, version1.external_id)
开发者ID:rkorytkowski,项目名称:oclapi,代码行数:28,代码来源:tests.py
示例3: test_persist_new_positive__earlier_source_version
def test_persist_new_positive__earlier_source_version(self):
version1 = SourceVersion.get_latest_version_of(self.source1)
self.assertEquals(0, len(version1.mappings))
version2 = SourceVersion.for_base_object(self.source1, label='version2')
version2.save()
self.assertEquals(0, len(version2.mappings))
source_version = SourceVersion.get_latest_version_of(self.source1)
self.assertEquals(0, len(source_version.mappings))
mapping = Mapping(
map_type='Same As',
from_concept=self.concept1,
to_concept=self.concept2,
external_id='mapping1',
)
kwargs = {
'parent_resource': self.source1,
'parent_resource_version': version1,
}
errors = Mapping.persist_new(mapping, self.user1, **kwargs)
self.assertEquals(0, len(errors))
self.assertTrue(Mapping.objects.filter(external_id='mapping1').exists())
mapping = Mapping.objects.get(external_id='mapping1')
version1 = SourceVersion.objects.get(id=version1.id)
self.assertEquals(1, len(version1.mappings))
self.assertTrue(MappingVersion.objects.get(versioned_object_id=mapping.id).id in version1.mappings)
version2 = SourceVersion.objects.get(id=version2.id)
self.assertEquals(0, len(version2.mappings))
latest_version = SourceVersion.get_latest_version_of(self.source1)
self.assertEquals(0, len(latest_version.mappings))
开发者ID:AnshuAg,项目名称:oclapi,代码行数:35,代码来源:tests.py
示例4: test_persist_changes_positive__good_parent_version
def test_persist_changes_positive__good_parent_version(self):
version1 = SourceVersion.for_base_object(self.source1, 'version1')
version1.full_clean()
version1.save()
version2 = SourceVersion.for_base_object(self.source1, 'version2')
version2.full_clean()
version2.save()
self.assertIsNone(version2.parent_version)
mnemonic = version2.mnemonic
released = version2.released
description = version2.description
external_id = version2.external_id
id = version2.id
version2._parent_version_mnemonic = 'version1'
version2.mnemonic = "%s-prime" % mnemonic
version2.released = not released
version2.description = "%s-prime" % description
version2.external_id = "%s-prime" % external_id
errors = SourceVersion.persist_changes(version2)
self.assertEquals(0, len(errors))
version2 = SourceVersion.objects.get(id=id)
self.assertEquals(self.source1, version2.versioned_object)
self.assertEquals(2, self.source1.num_versions)
self.assertEquals(version2, SourceVersion.get_latest_version_of(self.source1))
self.assertEquals(version1, version2.parent_version)
self.assertNotEquals(mnemonic, version2.mnemonic)
self.assertNotEquals(released, version2.released)
self.assertNotEquals(description, version2.description)
self.assertNotEquals(external_id, version2.external_id)
开发者ID:rkorytkowski,项目名称:oclapi,代码行数:34,代码来源:tests.py
示例5: test_source_version_create_positive__same_mnemonic
def test_source_version_create_positive__same_mnemonic(self):
source_version = SourceVersion(
name='version1',
mnemonic='version1',
versioned_object=self.source1,
created_by=self.user1,
updated_by=self.user1,
)
source_version.full_clean()
source_version.save()
self.assertTrue(SourceVersion.objects.filter(
mnemonic='version1',
versioned_object_type=ContentType.objects.get_for_model(Source),
versioned_object_id=self.source1.id
).exists())
self.assertEquals(1, self.source1.num_versions)
source_version = SourceVersion(
name='version1',
mnemonic='version1',
versioned_object=self.source2,
created_by=self.user1,
updated_by=self.user1,
)
source_version.full_clean()
source_version.save()
self.assertTrue(SourceVersion.objects.filter(
mnemonic='version1',
versioned_object_type=ContentType.objects.get_for_model(Source),
versioned_object_id=self.source2.id
).exists())
self.assertEquals(1, self.source2.num_versions)
开发者ID:rkorytkowski,项目名称:oclapi,代码行数:32,代码来源:tests.py
示例6: test_retire_positive
def test_retire_positive(self):
source_version = SourceVersion.get_latest_version_of(self.source1)
self.assertEquals(0, len(source_version.concepts))
concept = Concept(
mnemonic='concept1',
created_by=self.user1,
updated_by=self.user1,
parent=self.source1,
concept_class='First',
names=[self.name],
)
kwargs = {
'parent_resource': self.source1,
}
errors = Concept.persist_new(concept, self.user1, **kwargs)
self.assertEquals(0, len(errors))
self.assertTrue(Concept.objects.filter(mnemonic='concept1').exists())
self.assertFalse(concept.retired)
self.assertEquals(1, concept.num_versions)
concept_version = ConceptVersion.get_latest_version_of(concept)
self.assertTrue(concept_version.is_latest_version)
self.assertFalse(concept_version.retired)
source_version = SourceVersion.get_latest_version_of(self.source1)
self.assertEquals(1, len(source_version.concepts))
self.assertEquals(concept_version.id, source_version.concepts[0])
errors = Concept.retire(concept, self.user1)
self.assertFalse(errors)
self.assertTrue(Concept.objects.filter(mnemonic='concept1').exists())
self.assertTrue(concept.retired)
self.assertEquals(2, concept.num_versions)
previous_version = ConceptVersion.objects.get(id=concept_version.id)
self.assertFalse(previous_version.is_latest_version)
self.assertFalse(previous_version.retired)
concept_version = ConceptVersion.get_latest_version_of(concept)
self.assertTrue(concept_version.is_latest_version)
self.assertTrue(concept_version.retired)
self.assertEquals(self.user1.username, concept_version.version_created_by)
source_version = SourceVersion.get_latest_version_of(self.source1)
self.assertEquals(1, len(source_version.concepts))
self.assertEquals(concept_version.id, source_version.concepts[0])
self.assertEquals(
1, ConceptVersion.objects.filter(versioned_object_id=concept.id, retired=True).count())
self.assertEquals(
1, ConceptVersion.objects.filter(versioned_object_id=concept.id, retired=False).count())
errors = Concept.retire(concept, self.user1)
self.assertEquals(1, len(errors))
开发者ID:AnjaliWadhwa,项目名称:oclapi,代码行数:54,代码来源:tests.py
示例7: test_source_version_create_negative__no_source
def test_source_version_create_negative__no_source(self):
with self.assertRaises(ValidationError):
source_version = SourceVersion(
mnemonic='version1',
name='version1',
created_by=self.user1,
updated_by=self.user1,
)
source_version.full_clean()
source_version.save()
self.assertEquals(0, self.source1.num_versions)
开发者ID:rkorytkowski,项目名称:oclapi,代码行数:11,代码来源:tests.py
示例8: test_persist_new_positive
def test_persist_new_positive(self):
mapping = Mapping(
map_type='Same As',
from_concept=self.concept1,
to_concept=self.concept2,
external_id='mapping1',
)
source_version = SourceVersion.get_latest_version_of(self.source1)
self.assertEquals(0, len(source_version.mappings))
kwargs = {
'parent_resource': self.source1,
}
errors = Mapping.persist_new(mapping, self.user1, **kwargs)
self.assertEquals(0, len(errors))
self.assertTrue(Mapping.objects.filter(external_id='mapping1').exists())
mapping = Mapping.objects.get(external_id='mapping1')
self.assertEquals(self.source1.public_access, mapping.public_access)
self.assertEquals('user1', mapping.created_by)
self.assertEquals('user1', mapping.updated_by)
self.assertEquals(self.source1, mapping.parent)
self.assertEquals('Same As', mapping.map_type)
self.assertEquals(self.concept1, mapping.from_concept)
self.assertEquals(self.concept2, mapping.to_concept)
self.assertEquals(self.source1, mapping.from_source)
self.assertEquals(self.source1.owner_name, mapping.from_source_owner)
self.assertEquals(self.source1.mnemonic, mapping.from_source_name)
self.assertEquals(self.source1, mapping.get_to_source())
self.assertEquals(self.source1.owner_name, mapping.to_source_owner)
self.assertEquals(self.concept2.mnemonic, mapping.get_to_concept_code())
self.assertEquals(self.concept2.display_name, mapping.get_to_concept_name())
source_version = SourceVersion.objects.get(id=source_version.id)
self.assertEquals(1, len(source_version.mappings))
self.assertTrue(MappingVersion.objects.get(versioned_object_id=mapping.id).id in source_version.mappings)
开发者ID:AnshuAg,项目名称:oclapi,代码行数:35,代码来源:tests.py
示例9: test_edit_mapping_make_new_version_positive
def test_edit_mapping_make_new_version_positive(self):
mapping1 = Mapping(
map_type='Same As',
from_concept=self.concept1,
to_concept=self.concept2,
external_id='mapping1',
)
source_version = SourceVersion.get_latest_version_of(self.source1)
self.assertEquals(0, len(source_version.mappings))
kwargs = {
'parent_resource': self.source1,
}
errors = Mapping.persist_new(mapping1, self.user1, **kwargs)
self.assertEquals(0, len(errors))
self.assertEquals(1,len(MappingVersion.objects.filter(versioned_object_id=mapping1.id)))
mapping1.map_type='BROADER_THAN'
Mapping.persist_changes(mapping1, self.user1)
self.assertEquals(2, len(MappingVersion.objects.filter(versioned_object_id=mapping1.id)))
old_version = MappingVersion.objects.get(versioned_object_id=mapping1.id, is_latest_version=False)
new_version= MappingVersion.objects.get(versioned_object_id=mapping1.id, is_latest_version=True)
self.assertFalse(old_version.is_latest_version)
self.assertTrue(new_version.is_latest_version)
self.assertEquals(new_version.map_type,'BROADER_THAN')
self.assertEquals(old_version.map_type,'Same As')
开发者ID:AnshuAg,项目名称:oclapi,代码行数:30,代码来源:tests.py
示例10: test_persist_persist_changes_negative__no_updated_by
def test_persist_persist_changes_negative__no_updated_by(self):
mapping = Mapping(
map_type='Same As',
from_concept=self.concept1,
to_concept=self.concept2,
external_id='mapping1',
)
source_version = SourceVersion.get_latest_version_of(self.source1)
self.assertEquals(0, len(source_version.mappings))
kwargs = {
'parent_resource': self.source1,
}
Mapping.persist_new(mapping, self.user1, **kwargs)
mapping = Mapping.objects.get(external_id='mapping1')
source_version = SourceVersion.objects.get(id=source_version.id)
self.assertEquals(1, len(source_version.mappings))
self.assertTrue(MappingVersion.objects.get(versioned_object_id=mapping.id).id in source_version.mappings)
mapping.to_concept = self.concept3
errors = Mapping.persist_changes(mapping, None)
self.assertEquals(1, len(errors))
self.assertTrue('updated_by' in errors)
source_version = SourceVersion.objects.get(id=source_version.id)
self.assertEquals(1, len(source_version.mappings))
self.assertTrue(MappingVersion.objects.get(versioned_object_id=mapping.id).id in source_version.mappings)
开发者ID:AnshuAg,项目名称:oclapi,代码行数:27,代码来源:tests.py
示例11: test_persist_persist_changes_positive
def test_persist_persist_changes_positive(self):
mapping = Mapping(
map_type='Same As',
from_concept=self.concept1,
to_concept=self.concept2,
external_id='mapping1',
)
source_version = SourceVersion.get_latest_version_of(self.source1)
self.assertEquals(0, len(source_version.mappings))
kwargs = {
'parent_resource': self.source1,
}
Mapping.persist_new(mapping, self.user1, **kwargs)
mapping = Mapping.objects.get(external_id='mapping1')
to_concept = mapping.to_concept
source_version = SourceVersion.objects.get(id=source_version.id)
self.assertEquals(1, len(source_version.mappings))
self.assertTrue(MappingVersion.objects.get(versioned_object_id=mapping.id).id in source_version.mappings)
mapping.to_concept = self.concept3
errors = Mapping.persist_changes(mapping, self.user1)
self.assertEquals(0, len(errors))
mapping = Mapping.objects.get(external_id='mapping1')
self.assertEquals(self.concept3, mapping.to_concept)
self.assertNotEquals(to_concept, mapping.to_concept)
source_version = SourceVersion.objects.get(id=source_version.id)
self.assertEquals(1, len(source_version.mappings))
mv = MappingVersion.objects.filter(versioned_object_id=mapping.id)
self.assertTrue(mv[1].id in source_version.mappings)
开发者ID:AnshuAg,项目名称:oclapi,代码行数:32,代码来源:tests.py
示例12: persist_changes
def persist_changes(cls, obj, updated_by, update_comment=None, **kwargs):
errors = dict()
obj.updated_by = updated_by
try:
obj.full_clean()
except ValidationError as e:
errors.update(e.message_dict)
return errors
persisted = False
try:
source_version = SourceVersion.get_head_of(obj.parent)
obj.save(**kwargs)
prev_latest_version = MappingVersion.objects.get(versioned_object_id=obj.id, is_latest_version=True)
prev_latest_version.is_latest_version = False
prev_latest_version.save()
new_latest_version = MappingVersion.for_mapping(obj)
new_latest_version.previous_version = prev_latest_version
new_latest_version.update_comment = update_comment
new_latest_version.mnemonic = int(prev_latest_version.mnemonic) + 1
new_latest_version.save()
source_version.update_mapping_version(new_latest_version)
persisted = True
finally:
if not persisted:
errors['non_field_errors'] = ["Failed to persist mapping."]
return errors
开发者ID:OpenConceptLab,项目名称:oclapi,代码行数:31,代码来源:models.py
示例13: test_persist_clone_positive
def test_persist_clone_positive(self):
self.assertEquals(2, self.concept1.num_versions)
self.assertEquals(
self.concept_version, ConceptVersion.get_latest_version_of(self.concept1))
source_version = SourceVersion.get_latest_version_of(self.source1)
source_version.update_concept_version(self.concept_version)
self.assertEquals(1, len(source_version.concepts))
self.assertEquals(self.concept_version.id, source_version.concepts[0])
version2 = self.concept_version.clone()
errors = ConceptVersion.persist_clone(version2, self.user1)
self.assertEquals(0, len(errors))
self.assertEquals(3, self.concept1.num_versions)
self.assertEquals(version2, ConceptVersion.get_latest_version_of(self.concept1))
self.assertEquals(self.concept_version.public_access, version2.public_access)
self.assertEquals(self.concept_version, version2.previous_version)
self.assertEquals(self.concept_version.root_version, version2.root_version)
self.assertEquals(self.concept_version.external_id, version2.external_id)
self.assertEquals(self.user1.username, version2.version_created_by)
source_version.update_concept_version(version2)
self.assertEquals(1, len(source_version.concepts))
self.assertEquals(version2.id, source_version.concepts[0])
开发者ID:AnjaliWadhwa,项目名称:oclapi,代码行数:26,代码来源:tests.py
示例14: test_create_concept_reference_source_version__positive
def test_create_concept_reference_source_version__positive(self):
source_version = SourceVersion.get_latest_version_of(self.source1)
concept_reference = ConceptReference(
created_by=self.user1,
updated_by=self.user1,
parent=self.source1,
mnemonic='reference1',
concept=self.concept1,
source_version=source_version,
)
concept_reference.full_clean()
concept_reference.save()
self.assertTrue(ConceptReference.objects.filter(mnemonic='reference1').exists())
self.assertEquals(self.concept1.concept_class, concept_reference.concept_class)
self.assertEquals(self.concept1.datatype, concept_reference.data_type)
self.assertEquals(self.concept1.parent, concept_reference.source)
self.assertEquals(self.concept1.owner_name, concept_reference.owner_name)
self.assertEquals(self.concept1.owner_type, concept_reference.owner_type)
self.assertEquals(self.concept1.display_name, concept_reference.display_name)
self.assertEquals(self.concept1.display_locale, concept_reference.display_locale)
self.assertEquals(
'/users/user1/sources/source1/%s/concepts/concept1/' % source_version.mnemonic,
concept_reference.concept_reference_url)
self.assertFalse(concept_reference.is_current_version)
开发者ID:AnjaliWadhwa,项目名称:oclapi,代码行数:25,代码来源:tests.py
示例15: test_import_job_for_change_in_data
def test_import_job_for_change_in_data(self):
stdout_stub = TestStream()
stderr_stub = TestStream()
mapping = Mapping(
parent=self.source1,
map_type='SAME-AS',
from_concept=self.concept3,
to_source=self.source1,
to_concept_code='413532003',
external_id='junk'
)
kwargs = {
'parent_resource': self.source1,
}
Mapping.persist_new(mapping, self.user1, **kwargs)
source_version = SourceVersion.get_latest_version_of(self.source1)
source_version.mappings = [mapping.id]
source_version.save()
importer = MappingsImporter(self.source1, self.testfile, stdout_stub, stderr_stub, 'test')
importer.import_mappings(total=1)
self.assertTrue('mappings of 1 1 - 1 updated' in stdout_stub.getvalue())
self.assertTrue(('Updated mapping with ID ' + mapping.id) in stdout_stub.getvalue())
updated_mapping = Mapping.objects.get(to_concept_code='413532003')
self.assertTrue(updated_mapping.retired)
self.assertEquals(updated_mapping.external_id, '70279ABBBBBBBBBBBBBBBBBBBBBBBBBBBBBB')
开发者ID:AnshuAg,项目名称:oclapi,代码行数:26,代码来源:bulk_import_validation.py
示例16: test_import_job_for_change_in_data
def test_import_job_for_change_in_data(self):
stdout_stub = TestStream()
source_version_latest = SourceVersion.get_latest_version_of(self.source1)
concept = Concept(
mnemonic='1',
created_by=self.user1,
updated_by=self.user1,
parent=self.source1,
concept_class='Diagnosis',
external_id='1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
names=[self.name])
kwargs = {
'parent_resource': self.source1,
}
Concept.persist_new(concept, self.user1, **kwargs)
importer = ConceptsImporter(self.source1, self.testfile, 'test', stdout_stub, TestStream())
importer.import_concepts(total=1)
all_concept_versions = ConceptVersion.objects.all()
self.assertEquals(len(all_concept_versions), 2)
concept = Concept.objects.get(mnemonic='1')
latest_concept_version = [version for version in all_concept_versions if version.previous_version][0]
self.assertEquals(len(latest_concept_version.names), 4)
self.assertTrue(('Updated concept, replacing version ID ' + latest_concept_version.previous_version.id) in stdout_stub.getvalue())
self.assertTrue('concepts of 1 1 - 1 updated' in stdout_stub.getvalue())
开发者ID:AnjaliWadhwa,项目名称:oclapi,代码行数:27,代码来源:tests.py
示例17: test_persist_new_positive
def test_persist_new_positive(self):
concept = Concept(
mnemonic='concept1',
created_by=self.user1,
parent=self.source1,
concept_class='First',
names=[self.name],
)
source_version = SourceVersion.get_latest_version_of(self.source1)
self.assertEquals(0, len(source_version.concepts))
kwargs = {
'parent_resource': self.source1,
}
errors = Concept.persist_new(concept, self.user1, **kwargs)
self.assertEquals(0, len(errors))
self.assertTrue(Concept.objects.filter(mnemonic='concept1').exists())
self.assertFalse(concept.retired)
self.assertEquals(self.name.name, concept.display_name)
self.assertEquals(self.name.locale, concept.display_locale)
self.assertEquals(self.source1.owner_name, concept.owner_name)
self.assertEquals(self.source1.owner_type, concept.owner_type)
self.assertEquals(self.source1.public_access, concept.public_access)
self.assertEquals(1, concept.num_versions)
concept_version = ConceptVersion.get_latest_version_of(concept)
self.assertEquals(concept_version, concept_version.root_version)
source_version = SourceVersion.objects.get(id=source_version.id)
self.assertEquals(1, len(source_version.concepts))
self.assertTrue(concept_version.id in source_version.concepts)
self.assertEquals(concept_version.mnemonic, concept_version.id)
开发者ID:AnjaliWadhwa,项目名称:oclapi,代码行数:31,代码来源:tests.py
示例18: test_dispatch_with_head_and_versions
def test_dispatch_with_head_and_versions(self):
source_version = SourceVersion(
name='version1',
mnemonic='version1',
versioned_object=self.source1,
released=True,
created_by=self.user1,
updated_by=self.user1,
)
source_version.full_clean()
source_version.save()
concept2 = Concept(
mnemonic='concept2',
created_by=self.user1,
updated_by=self.user1,
parent=self.source1,
concept_class='not First',
external_id='EXTID',
names=[self.name],
)
display_name = LocalizedText(
name='concept2',
locale='en'
)
concept2.names.append(display_name)
kwargs = {
'parent_resource': self.source1,
}
Concept.persist_new(concept2, self.user1, **kwargs)
self.client.login(username='user1', password='user1')
kwargs = {
'org': self.org1.mnemonic,
'source': self.source1.mnemonic
}
response = self.client.get(reverse('concept-create', kwargs=kwargs))
self.assertEquals(response.status_code, 200)
content = json.loads(response.content)
self.assertEquals(2, len(content))
source_head_concepts = SourceVersion.objects.get(mnemonic='HEAD', versioned_object_id=self.source1.id).concepts
self.assertEquals(2, len(source_head_concepts))
for concept in content:
self.assertTrue(concept['version'] in source_head_concepts)
开发者ID:AnjaliWadhwa,项目名称:oclapi,代码行数:46,代码来源:tests.py
示例19: create_new_source_version
def create_new_source_version(self, new_version):
new_source_version = SourceVersion.for_base_object(
self.source, new_version, previous_version=self.source_version)
new_source_version.seed_concepts()
new_source_version.seed_mappings()
new_source_version.full_clean()
new_source_version.save()
self.source_version = new_source_version
开发者ID:bhawnasingla,项目名称:oclapi,代码行数:8,代码来源:importer.py
示例20: retrieve
def retrieve(self, request, *args, **kwargs):
super(SourceRetrieveUpdateDestroyView, self).retrieve(request, *args, **kwargs)
self.object = self.get_object()
serializer = self.get_serializer(self.object)
data = serializer.data
source_version = SourceVersion.get_latest_version_of(self.object)
self.includeConceptsAndMappings(request, data, source_version)
return Response(data)
开发者ID:OpenConceptLab,项目名称:oclapi,代码行数:8,代码来源:views.py
注:本文中的sources.models.SourceVersion类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论