本文整理汇总了Python中twisted.python.filepath.FilePath.basename方法的典型用法代码示例。如果您正苦于以下问题:Python FilePath.basename方法的具体用法?Python FilePath.basename怎么用?Python FilePath.basename使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类twisted.python.filepath.FilePath
的用法示例。
在下文中一共展示了FilePath.basename方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_addPyListings
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def test_addPyListings(self):
"""
L{tree.addPyListings} accepts a document with nodes with their I{class}
attribute set to I{py-listing} and replaces those nodes with Python
source listings from the file given by the node's I{href} attribute.
"""
listingPath = FilePath(self.mktemp())
listingPath.setContent('def foo():\n pass\n')
parent = dom.Element('div')
listing = dom.Element('a')
listing.setAttribute('href', listingPath.basename())
listing.setAttribute('class', 'py-listing')
parent.appendChild(listing)
tree.addPyListings(parent, listingPath.dirname())
expected = """\
<div><div class="py-listing"><pre><p class="py-linenumber">1
2
</p><span class="py-src-keyword">def</span> <span class="py-src-identifier">foo</span>():
<span class="py-src-keyword">pass</span>
</pre><div class="caption"> - <a href="temp"><span class="filename">temp</span></a></div></div></div>"""
self.assertEqual(parent.toxml(), expected)
示例2: test_rewriteCss
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def test_rewriteCss(self):
"""
Test that CSS processing works, and verify the header.
"""
clock = Clock()
fc = FileCache(lambda: clock.seconds(), 1)
temp = FilePath(self.mktemp() + '.css')
with temp.open('wb') as f:
f.write("p { color: red; }\n")
# BetterFile(temp.path) would not work because the processing happens
# in getChild. So, create a BetterFile for the .css file's parent dir.
bf = BetterFile(temp.parent().path, fileCache=fc, rewriteCss=True)
d = self._requestPostpathAndRender(bf, [temp.basename()])
headerRe = re.compile(r"/\* CSSResource processed ([0-9a-f]{32}?) \*/")
def assertProcessedContent((request, child)):
out = "".join(request.written)
lines = out.split("\n")
self.assertTrue(re.match(headerRe, lines[0]), lines[0])
self.assertEqual("p { color: red; }", lines[1])
self.assertEqual("", lines[2])
self.assertEqual(3, len(lines))
d.addCallback(assertProcessedContent)
return d
示例3: test_file_logging_rotation_5_files
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def test_file_logging_rotation_5_files(self):
"""
Only 5 logfiles are kept.
"""
logfile = FilePath(self.mktemp()).child('foo.log')
logfile.parent().makedirs()
# This file will become foo.log.1
with logfile.open('w') as f:
f.write(b'0')
f.truncate(int(MiB(100).to_Byte().value))
# These file extensions will be incremented
for i in range(1, 5):
sibling = logfile.sibling(logfile.basename() + u'.' + unicode(i))
with sibling.open('w') as f:
f.write(bytes(i))
d = self.run_script(EliotScript, options=['--logfile', logfile.path])
def verify_logfiles(stdout_messages, logfile):
logfile_dir = logfile.parent()
self.assertEqual(
# The contents of the files will now be an integer one less
# than the integer in the file name.
map(bytes, range(0, 4)),
list(
logfile_dir.child('foo.log.{}'.format(i)).open().read(1)
for i
in range(1, 5)
)
)
d.addCallback(verify_logfiles, logfile=logfile)
return d
示例4: _wait_for_new_device
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def _wait_for_new_device(base, size, time_limit=60):
"""
Helper function to wait for up to 60s for new
EBS block device (`/dev/sd*` or `/dev/xvd*`) to
manifest in the OS.
:param list base: List of baseline block devices
that existed before execution of operation that expects
to create a new block device.
:param int size: Size of the block device we are expected
to manifest in the OS.
:param int time_limit: Time, in seconds, to wait for
new device to manifest. Defaults to 60s.
:returns: formatted string name of the new block device.
:rtype: unicode
"""
start_time = time.time()
elapsed_time = time.time() - start_time
while elapsed_time < time_limit:
for device in list(set(FilePath(b"/sys/block").children()) -
set(base)):
device_name = FilePath.basename(device)
if (device_name.startswith((b"sd", b"xvd")) and
_check_blockdevice_size(device_name, size)):
new_device = u'/dev/' + device_name.decode("ascii")
return new_device
time.sleep(0.1)
elapsed_time = time.time() - start_time
return None
示例5: test_readme
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def test_readme(self):
readme = FilePath(__file__).parent().parent().parent().child('README.rst')
test = _doctest_parser.get_doctest(readme.getContent(), {},
readme.basename(), readme.path, 0)
output = []
r = _doctest_runner.run(test, out=output.append)
if r.failed:
self.fail('%s\n%s' % (test.name, ''.join(output)))
示例6: buildPDF
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def buildPDF(self, bookPath, inputDirectory, outputPath):
"""
Build a PDF from the given a LaTeX book document.
@type bookPath: L{FilePath}
@param bookPath: The location of a LaTeX document defining a book.
@type inputDirectory: L{FilePath}
@param inputDirectory: The directory which the inputs of the book are
relative to.
@type outputPath: L{FilePath}
@param outputPath: The location to which to write the resulting book.
"""
if not bookPath.basename().endswith(".tex"):
raise ValueError("Book filename must end with .tex")
workPath = FilePath(mkdtemp())
try:
startDir = os.getcwd()
try:
os.chdir(inputDirectory.path)
texToDVI = (
"latex -interaction=nonstopmode "
"-output-directory=%s %s") % (
workPath.path, bookPath.path)
# What I tell you three times is true!
# The first two invocations of latex on the book file allows it
# correctly create page numbers for in-text references. Why this is
# the case, I could not tell you. -exarkun
for i in range(3):
self.run(texToDVI)
bookBaseWithoutExtension = bookPath.basename()[:-4]
dviPath = workPath.child(bookBaseWithoutExtension + ".dvi")
psPath = workPath.child(bookBaseWithoutExtension + ".ps")
pdfPath = workPath.child(bookBaseWithoutExtension + ".pdf")
self.run(
"dvips -o %(postscript)s -t letter -Ppdf %(dvi)s" % {
'postscript': psPath.path,
'dvi': dviPath.path})
self.run("ps2pdf13 %(postscript)s %(pdf)s" % {
'postscript': psPath.path,
'pdf': pdfPath.path})
pdfPath.moveTo(outputPath)
workPath.remove()
finally:
os.chdir(startDir)
except:
workPath.moveTo(bookPath.parent().child(workPath.basename()))
raise
示例7: _parse_file
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def _parse_file(self, kind, args):
if args == "-":
get_file = lambda: stdout
else:
path = FilePath(args)
get_file = lambda: LogFile(
path.basename(),
path.dirname(),
rotateLength=1024 * 1024 * 1024,
maxRotatedFiles=10,
)
return lambda reactor: FileDestination(get_file())
示例8: loadFile
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def loadFile(self, filename):
"""
Load records from C{filename}.
@param filename: file to read from
@type filename: L{bytes}
"""
fp = FilePath(filename)
# Not the best way to set an origin. It can be set using $ORIGIN
# though.
self.origin = nativeString(fp.basename() + b'.')
lines = fp.getContent().splitlines(True)
lines = self.stripComments(lines)
lines = self.collapseContinuations(lines)
self.parseLines(lines)
示例9: test_cssCached
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def test_cssCached(self):
"""
The processed CSS file is cached, and updated when the underlying
file changes.
"""
clock = Clock()
fc = FileCache(lambda: clock.seconds(), 1)
temp = FilePath(self.mktemp() + '.css')
temp.setContent("p { color: red; }\n")
bf = BetterFile(temp.parent().path, fileCache=fc, rewriteCss=True)
d = self._requestPostpathAndRender(bf, [temp.basename()])
def assertColorRed((request, child)):
lines = "".join(request.written).split("\n")
self.assertEqual(["p { color: red; }", ""], lines[1:])
d.addCallback(assertColorRed)
def modifyUnderlyingAndMakeRequest(_):
with temp.open('wb') as f:
f.write("p { color: green; }\n")
d = self._requestPostpathAndRender(bf, [temp.basename()])
return d
d.addCallback(modifyUnderlyingAndMakeRequest)
def assertStillColorRed((request, child)):
lines = "".join(request.written).split("\n")
self.assertEqual(["p { color: red; }", ""], lines[1:])
d.addCallback(assertStillColorRed)
def advanceClockAndMakeRequest(_):
clock.advance(1)
d = self._requestPostpathAndRender(bf, [temp.basename()])
return d
d.addCallback(advanceClockAndMakeRequest)
def assertColorGreen((request, child)):
lines = "".join(request.written).split("\n")
self.assertEqual(["p { color: green; }", ""], lines[1:])
d.addCallback(assertColorGreen)
return d
示例10: do_urlextract
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def do_urlextract(dest, url):
global dsklst
dest=FilePath(dest)
# Don't do this if not mounted!
mntpnt=dsklst['/'].real_mountpoint()
if not os.path.ismount(mntpnt):
return False
if not dest.isdir():
return False
try:
uh=urllib2.urlopen(url)
tf=tarfile.open(mode='r|*',fileobj=uh)
os.chroot(mntpnt)
os.chdir(os.path.join(dest.dirname(),dest.basename()))
tf.extractall()
except:
traceback.print_exc()
os.chdir('/')
示例11: _wait_for_new_device
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def _wait_for_new_device(base, size, time_limit=60):
"""
Helper function to wait for up to 60s for new
EBS block device (`/dev/sd*` or `/dev/xvd*`) to
manifest in the OS.
:param list base: List of baseline block devices
that existed before execution of operation that expects
to create a new block device.
:param int size: Size of the block device we are expected
to manifest in the OS.
:param int time_limit: Time, in seconds, to wait for
new device to manifest. Defaults to 60s.
:returns: formatted string name of the new block device.
:rtype: unicode
"""
start_time = time.time()
elapsed_time = time.time() - start_time
while elapsed_time < time_limit:
for device in list(set(FilePath(b"/sys/block").children()) -
set(base)):
device_name = FilePath.basename(device)
if (device_name.startswith((b"sd", b"xvd")) and
_get_device_size(device_name) == size):
new_device = u'/dev/' + device_name.decode("ascii")
return new_device
time.sleep(0.1)
elapsed_time = time.time() - start_time
# If we failed to find a new device of expected size,
# log sizes of all new devices on this compute instance,
# for debuggability.
new_devices = list(set(FilePath(b"/sys/block").children()) - set(base))
new_devices_size = [_get_device_size(device) for device in new_devices]
NO_NEW_DEVICE_IN_OS(new_devices=new_devices,
new_devices_size=new_devices_size,
expected_size=size,
time_limit=time_limit).write()
return None
示例12: __init__
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def __init__(self, *argz, **kwz):
super(Logtail, self).__init__(*argz, **kwz)
self.exclude = self.conf.monitor_exclude or list()
if isinstance(self.exclude, types.StringTypes): self.exclude = [self.exclude]
self.exclude = map(re.compile, self.exclude)
paths_watch = self.paths_watch = dict()
self.paths_pos, self.paths_buff = dict(), dict()
masks, paths = self.conf.monitor, list()
if isinstance(masks, bytes): masks = [masks]
for mask in masks:
mask_patterns = self.glob_alter(mask)
for mask_raw in mask_patterns:
mask = FilePath(mask_raw)
# All matched parent dirs - like /x/y/z for /x/*/z/file* - are watched for pattern
# Note that watchers won't be auto-added for /x/m/z, if it'll be created later on
paths_ext = list( (path.realpath(), mask.basename())
for path in it.imap(FilePath, glob(mask.dirname())) )
paths.extend(paths_ext)
# If full pattern already match something, watch it if it's a dir - /x/dir1 for /x/dir*
# Note that watchers won't be auto-added for /x/dir2, if it'll be created later on
if paths_ext: # no point going deeper if parent dirs don't exist
paths.extend( (path.realpath(), '*')
for path in it.imap(FilePath, glob(mask_raw))
if path.realpath().isdir() )
# Aggregate path masks by-realpath
for path, mask in paths:
if not path.isdir():
log.debug('Skipping special path: {}'.format(path))
continue
if path not in paths_watch:
paths_watch[path] = {mask}
else: paths_watch[path].add(mask)
self.notifier_restart()
示例13: test_addPyListingsSkipLines
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def test_addPyListingsSkipLines(self):
"""
If a node with the I{py-listing} class also has a I{skipLines}
attribute, that number of lines from the beginning of the source
listing are omitted.
"""
listingPath = FilePath(self.mktemp())
listingPath.setContent('def foo():\n pass\n')
parent = dom.Element('div')
listing = dom.Element('a')
listing.setAttribute('href', listingPath.basename())
listing.setAttribute('class', 'py-listing')
listing.setAttribute('skipLines', 1)
parent.appendChild(listing)
tree.addPyListings(parent, listingPath.dirname())
expected = """\
<div><div class="py-listing"><pre><p class="py-linenumber">1
</p> <span class="py-src-keyword">pass</span>
</pre><div class="caption"> - <a href="temp"><span class="filename">temp</span></a></div></div></div>"""
self.assertEqual(parent.toxml(), expected)
示例14: start
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
def start():
global config
global antanistaticmap
global templates
global pool
global rexp
global fds_https
global fds_http
global ports
global requests_countdown
config = yield rpc("get_config")
rexp = {
'body': re.compile(r'(<body.*?\s*>)', re.I),
'w2t': re.compile(r'(https:)?//([a-z0-9]{16}).' + config['basehost'] + '(:443)?', re.I),
't2w': re.compile(r'(http:)?//([a-z0-9]{16}).onion(:80)?', re.I)
}
###############################################################################
# Templates loading
###############################################################################
antanistaticmap = {}
files = FilePath('/usr/share/tor2web/static/').globChildren("*")
for file in files:
file = FilePath(t2w_file_path(config['datadir'], os.path.join('static', file.basename())))
antanistaticmap[file.basename()] = file.getContent()
# we add additional files eventually written in datadir/static
# and not already loaded by previos lines.
if os.path.exists(os.path.join(config['datadir'], "static/")):
for file in files:
if file.basename() not in antanistaticmap:
antanistaticmap[file.basename()] = file.getContent()
###############################################################################
###############################################################################
# Templates loading
###############################################################################
templates = {}
files = FilePath('/usr/share/tor2web/templates/').globChildren("*.tpl")
for file in files:
file = FilePath(t2w_file_path(config['datadir'], os.path.join('templates', file.basename())))
templates[file.basename()] = PageTemplate(XMLString(file.getContent()))
###############################################################################
pool = HTTPConnectionPool(reactor, True,
config['sockmaxpersistentperhost'],
config['sockcachedconnectiontimeout'],
config['sockretryautomatically'])
factory = T2WProxyFactory()
factory.requestCountdown = config['requests_per_process']
context_factory = T2WSSLContextFactory(os.path.join(config['datadir'], "certs/tor2web-key.pem"),
os.path.join(config['datadir'], "certs/tor2web-intermediate.pem"),
os.path.join(config['datadir'], "certs/tor2web-dh.pem"),
config['cipher_list'])
if config['debugmode']:
if config['debugtostdout']:
log.startLogging(sys.stdout)
else:
log.startLogging(log.NullFile)
fds_https = filter(None, args[0].split(","))
fds_https = [int(i) for i in fds_https]
fds_http = filter(None, args[1].split(","))
fds_http = [int(i) for i in fds_http]
reactor.listenTCPonExistingFD = listenTCPonExistingFD
reactor.listenSSLonExistingFD = listenSSLonExistingFD
for fd in fds_https:
ports.append(reactor.listenSSLonExistingFD(reactor,
fd=fd,
factory=factory,
contextFactory=context_factory))
for fd in fds_http:
ports.append(reactor.listenTCPonExistingFD(reactor,
fd=fd,
factory=factory))
# we do not want all workers to die in the same moment
requests_countdown = config['requests_per_process'] / random.randint(3, 5)
sys.excepthook = MailException
示例15: Tor2web
# 需要导入模块: from twisted.python.filepath import FilePath [as 别名]
# 或者: from twisted.python.filepath.FilePath import basename [as 别名]
t2w = Tor2web(config)
rexp = {
'body': re.compile(r'(<body.*?\s*>)', re.I),
'w2t': re.compile(r'(https:)?//([a-z0-9]{16}).' + config.basehost + '(:443)?', re.I),
't2w': re.compile(r'(http:)?//([a-z0-9]{16}).onion(:80)?', re.I)
}
###############################################################################
# Templates loading
###############################################################################
antanistaticmap = {}
files = FilePath('/usr/share/tor2web/static/').globChildren("*")
for file in files:
file = FilePath(t2w_file_path(os.path.join('static', file.basename())))
antanistaticmap[file.basename()] = file.getContent()
# we add additional files eventually written in datadir/static
# and not already loaded by previos lines.
if os.path.exists(os.path.join(config.datadir, "static/")):
for file in files:
if file.basename() not in antanistaticmap:
antanistaticmap[file.basename()] = file.getContent()
###############################################################################
###############################################################################
# Templates loading
###############################################################################
templates = {}