本文整理汇总了Python中readthedocs.core.resolver.resolve_path函数的典型用法代码示例。如果您正苦于以下问题:Python resolve_path函数的具体用法?Python resolve_path怎么用?Python resolve_path使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了resolve_path函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_resolver_translation
def test_resolver_translation(self):
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.translation, filename='index.html')
self.assertEqual(url, '/docs/pip/ja/latest/')
with override_settings(USE_SUBDOMAIN=True):
url = resolve_path(project=self.translation, filename='index.html')
self.assertEqual(url, '/ja/latest/')
开发者ID:lukegb,项目名称:readthedocs.org,代码行数:7,代码来源:test_resolver.py
示例2: test_resolver_subproject_subdomain
def test_resolver_subproject_subdomain(self):
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.subproject, filename='index.html')
self.assertEqual(url, '/docs/pip/projects/sub/ja/latest/')
with override_settings(USE_SUBDOMAIN=True):
url = resolve_path(project=self.subproject, filename='index.html')
self.assertEqual(url, '/projects/sub/ja/latest/')
开发者ID:lukegb,项目名称:readthedocs.org,代码行数:7,代码来源:test_resolver.py
示例3: test_resolver_force_version
def test_resolver_force_version(self):
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.pip, filename='index.html', version_slug='foo')
self.assertEqual(url, '/docs/pip/en/foo/')
with override_settings(USE_SUBDOMAIN=True):
url = resolve_path(project=self.pip, filename='index.html', version_slug='foo')
self.assertEqual(url, '/en/foo/')
开发者ID:lukegb,项目名称:readthedocs.org,代码行数:7,代码来源:test_resolver.py
示例4: test_resolver_filename_index
def test_resolver_filename_index(self):
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.pip, filename='foo/bar/index.html')
self.assertEqual(url, '/docs/pip/en/latest/foo/bar/')
url = resolve_path(
project=self.pip, filename='foo/index/index.html')
self.assertEqual(url, '/docs/pip/en/latest/foo/index/')
开发者ID:homerjonathan,项目名称:readthedocs.org,代码行数:7,代码来源:test_resolver.py
示例5: test_resolver_force_language
def test_resolver_force_language(self):
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.pip, filename='index.html', language='cz')
self.assertEqual(url, '/docs/pip/cz/latest/')
with override_settings(USE_SUBDOMAIN=True):
url = resolve_path(project=self.pip, filename='index.html', language='cz')
self.assertEqual(url, '/cz/latest/')
开发者ID:lukegb,项目名称:readthedocs.org,代码行数:7,代码来源:test_resolver.py
示例6: test_resolver_no_force_translation_with_version
def test_resolver_no_force_translation_with_version(self):
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.translation, filename='index.html', language='cz', version_slug='foo')
self.assertEqual(url, '/docs/pip/ja/foo/')
with override_settings(USE_SUBDOMAIN=True):
url = resolve_path(project=self.translation, filename='index.html', language='cz', version_slug='foo')
self.assertEqual(url, '/ja/foo/')
开发者ID:lukegb,项目名称:readthedocs.org,代码行数:7,代码来源:test_resolver.py
示例7: test_resolver_force_domain
def test_resolver_force_domain(self):
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.pip, filename='index.html', cname=True)
self.assertEqual(url, '/en/latest/')
with override_settings(USE_SUBDOMAIN=True):
url = resolve_path(project=self.pip, filename='index.html', cname=True)
self.assertEqual(url, '/en/latest/')
开发者ID:lukegb,项目名称:readthedocs.org,代码行数:7,代码来源:test_resolver.py
示例8: test_resolver_force_domain_single_version
def test_resolver_force_domain_single_version(self):
self.pip.single_version = False
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.pip, filename='index.html', single_version=True, cname=True)
self.assertEqual(url, '/')
with override_settings(USE_SUBDOMAIN=True):
url = resolve_path(project=self.pip, filename='index.html', single_version=True, cname=True)
self.assertEqual(url, '/')
开发者ID:lukegb,项目名称:readthedocs.org,代码行数:8,代码来源:test_resolver.py
示例9: test_resolver_domain_object_not_canonical
def test_resolver_domain_object_not_canonical(self):
self.domain = get(Domain, domain='http://docs.foobar.com', project=self.pip, canonical=False)
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.pip, filename='')
self.assertEqual(url, '/docs/pip/en/latest/')
with override_settings(USE_SUBDOMAIN=True):
url = resolve_path(project=self.pip, filename='')
self.assertEqual(url, '/en/latest/')
开发者ID:lukegb,项目名称:readthedocs.org,代码行数:8,代码来源:test_resolver.py
示例10: test_resolver_subproject_both_single_version
def test_resolver_subproject_both_single_version(self):
self.pip.single_version = True
self.subproject.single_version = True
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.subproject, filename='index.html')
self.assertEqual(url, '/docs/pip/projects/sub/')
with override_settings(USE_SUBDOMAIN=True):
url = resolve_path(project=self.subproject, filename='index.html')
self.assertEqual(url, '/projects/sub/')
开发者ID:lukegb,项目名称:readthedocs.org,代码行数:9,代码来源:test_resolver.py
示例11: test_resolver_filename_sphinx
def test_resolver_filename_sphinx(self):
self.pip.documentation_type = 'sphinx'
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.pip, filename='foo/bar')
self.assertEqual(url, '/docs/pip/en/latest/foo/bar.html')
url = resolve_path(project=self.pip, filename='foo/index')
self.assertEqual(url, '/docs/pip/en/latest/foo/')
self.pip.documentation_type = 'mkdocs'
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.pip, filename='foo/bar')
self.assertEqual(url, '/docs/pip/en/latest/foo/bar/')
url = resolve_path(project=self.pip, filename='foo/index')
self.assertEqual(url, '/docs/pip/en/latest/foo/')
开发者ID:lukegb,项目名称:readthedocs.org,代码行数:13,代码来源:test_resolver.py
示例12: test_resolver_filename
def test_resolver_filename(self):
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.pip, filename='/foo/bar/blah.html')
self.assertEqual(url, '/docs/pip/en/latest/foo/bar/blah.html')
with override_settings(USE_SUBDOMAIN=True):
url = resolve_path(project=self.pip, filename='/foo/bar/blah.html')
self.assertEqual(url, '/en/latest/foo/bar/blah.html')
with override_settings(USE_SUBDOMAIN=False):
url = resolve_path(project=self.pip, filename='')
self.assertEqual(url, '/docs/pip/en/latest/')
with override_settings(USE_SUBDOMAIN=True):
url = resolve_path(project=self.pip, filename='')
self.assertEqual(url, '/en/latest/')
开发者ID:lukegb,项目名称:readthedocs.org,代码行数:14,代码来源:test_resolver.py
示例13: serve_docs
def serve_docs(request, project, subproject,
lang_slug=None, version_slug=None, filename=''):
"""
This exists mainly to map existing proj, lang, version, filename views to the file format.
"""
if not version_slug:
version_slug = project.get_default_version()
try:
version = project.versions.public(request.user).get(slug=version_slug)
except Version.DoesNotExist:
# Properly raise a 404 if the version doesn't exist & a 401 if it does
if project.versions.filter(slug=version_slug).exists():
return _serve_401(request, project)
raise Http404('Version does not exist.')
filename = resolve_path(
subproject or project, # Resolve the subproject if it exists
version_slug=version_slug, language=lang_slug, filename=filename,
subdomain=True, # subdomain will make it a "full" path without a URL prefix
)
if (
version.privacy_level == constants.PRIVATE and
not AdminPermission.is_member(user=request.user, obj=project)
):
return _serve_401(request, project)
return _serve_symlink_docs(request,
filename=filename,
project=project,
privacy_level=version.privacy_level)
开发者ID:Jarvie8176,项目名称:readthedocs.org,代码行数:28,代码来源:serve.py
示例14: _manage_imported_files
def _manage_imported_files(version, path, commit):
"""Update imported files for version
:param version: Version instance
:param path: Path to search
:param commit: Commit that updated path
"""
changed_files = set()
for root, __, filenames in os.walk(path):
for filename in filenames:
dirpath = os.path.join(root.replace(path, "").lstrip("/"), filename.lstrip("/"))
full_path = os.path.join(root, filename)
md5 = hashlib.md5(open(full_path, "rb").read()).hexdigest()
try:
obj, __ = ImportedFile.objects.get_or_create(
project=version.project, version=version, path=dirpath, name=filename
)
except ImportedFile.MultipleObjectsReturned:
log.exception("Error creating ImportedFile")
continue
if obj.md5 != md5:
obj.md5 = md5
changed_files.add(dirpath)
if obj.commit != commit:
obj.commit = commit
obj.save()
# Delete ImportedFiles from previous versions
ImportedFile.objects.filter(project=version.project, version=version).exclude(commit=commit).delete()
# Purge Cache
changed_files = [resolve_path(version.project, filename=file, version_slug=version.slug) for file in changed_files]
cdn_ids = getattr(settings, "CDN_IDS", None)
if cdn_ids:
if version.project.slug in cdn_ids:
purge(cdn_ids[version.project.slug], changed_files)
开发者ID:rtfd,项目名称:readthedocs.org,代码行数:34,代码来源:tasks.py
示例15: get_full_path
def get_full_path(self, filename, language=None, version_slug=None):
"""
Return a full path for a given filename. This will include version and
language information. No protocol/domain is returned.
"""
# Handle explicit http redirects
if re.match("^https?://", filename):
return filename
return resolve_path(project=self.project, language=language, version_slug=version_slug, filename=filename)
开发者ID:cocheok,项目名称:readthedocs.org,代码行数:11,代码来源:models.py
示例16: robots_txt
def robots_txt(request, project):
"""
Serve custom user's defined ``/robots.txt``.
If the user added a ``robots.txt`` in the "default version" of the project,
we serve it directly.
"""
# Use the ``robots.txt`` file from the default version configured
version_slug = project.get_default_version()
version = project.versions.get(slug=version_slug)
no_serve_robots_txt = any([
# If project is private or,
project.privacy_level == constants.PRIVATE,
# default version is private or,
version.privacy_level == constants.PRIVATE,
# default version is not active or,
not version.active,
# default version is not built
not version.built,
])
if no_serve_robots_txt:
# ... we do return a 404
raise Http404()
filename = resolve_path(
project,
version_slug=version_slug,
filename='robots.txt',
subdomain=True, # subdomain will make it a "full" path without a URL prefix
)
# This breaks path joining, by ignoring the root when given an "absolute" path
if filename[0] == '/':
filename = filename[1:]
basepath = PublicSymlink(project).project_root
fullpath = os.path.join(basepath, filename)
if os.path.exists(fullpath):
return HttpResponse(open(fullpath).read(), content_type='text/plain')
sitemap_url = '{scheme}://{domain}/sitemap.xml'.format(
scheme='https',
domain=project.subdomain(),
)
return HttpResponse(
'User-agent: *\nAllow: /\nSitemap: {}\n'.format(sitemap_url),
content_type='text/plain',
)
开发者ID:rtfd,项目名称:readthedocs.org,代码行数:50,代码来源:serve.py
示例17: _manage_imported_files
def _manage_imported_files(version, path, commit):
"""
Update imported files for version.
:param version: Version instance
:param path: Path to search
:param commit: Commit that updated path
"""
changed_files = set()
for root, __, filenames in os.walk(path):
for filename in filenames:
dirpath = os.path.join(root.replace(path, '').lstrip('/'),
filename.lstrip('/'))
full_path = os.path.join(root, filename)
md5 = hashlib.md5(open(full_path, 'rb').read()).hexdigest()
try:
obj, __ = ImportedFile.objects.get_or_create(
project=version.project,
version=version,
path=dirpath,
name=filename,
)
except ImportedFile.MultipleObjectsReturned:
log.warning('Error creating ImportedFile')
continue
if obj.md5 != md5:
obj.md5 = md5
changed_files.add(dirpath)
if obj.commit != commit:
obj.commit = commit
obj.save()
# Delete ImportedFiles from previous versions
ImportedFile.objects.filter(project=version.project,
version=version
).exclude(commit=commit).delete()
changed_files = [
resolve_path(
version.project, filename=file, version_slug=version.slug,
) for file in changed_files
]
files_changed.send(sender=Project, project=version.project,
files=changed_files)
开发者ID:homerjonathan,项目名称:readthedocs.org,代码行数:42,代码来源:tasks.py
示例18: resolve_404_path
def resolve_404_path(project, version_slug=None, language=None):
"""
Helper to resolve the path of ``404.html`` for project.
The resolution is based on ``project`` object, version slug and
language.
:returns: tuple containing the (basepath, filename)
:rtype: tuple
"""
filename = resolve_path(
project,
version_slug=version_slug,
language=language,
filename='404.html',
subdomain=True, # subdomain will make it a "full" path without a URL prefix
)
# This breaks path joining, by ignoring the root when given an "absolute" path
if filename[0] == '/':
filename = filename[1:]
version = None
if version_slug:
version_qs = project.versions.filter(slug=version_slug)
if version_qs.exists():
version = version_qs.first()
private = any([
version and version.privacy_level == PRIVATE,
not version and project.privacy_level == PRIVATE,
])
if private:
symlink = PrivateSymlink(project)
else:
symlink = PublicSymlink(project)
basepath = symlink.project_root
fullpath = os.path.join(basepath, filename)
return (basepath, filename, fullpath)
开发者ID:chrisjsewell,项目名称:readthedocs.org,代码行数:39,代码来源:__init__.py
示例19: make_document_url
def make_document_url(project, version=None, page=""):
if not project:
return ""
return resolve_path(project=project, version_slug=version, filename=page)
开发者ID:rl4debug,项目名称:readthedocs.org,代码行数:4,代码来源:core_tags.py
注:本文中的readthedocs.core.resolver.resolve_path函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论