Python posixpath.join() Examples
The following are 30
code examples of posixpath.join().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
posixpath
, or try the search function
.
Example #1
Source File: autosummary__init__.py From pyGSTi with Apache License 2.0 | 6 votes |
def limited_join(sep, items, max_chars=30, overflow_marker="..."): """Join a number of strings to one, limiting the length to *max_chars*. If the string overflows this limit, replace the last fitting item by *overflow_marker*. Returns: joined_string """ full_str = sep.join(items) if len(full_str) < max_chars: return full_str n_chars = 0 n_items = 0 for j, item in enumerate(items): n_chars += len(item) + len(sep) if n_chars < max_chars - len(overflow_marker): n_items += 1 else: break return sep.join(list(items[:n_items]) + [overflow_marker]) # -- Importing items -----------------------------------------------------------
Example #2
Source File: wheel.py From recruit with Apache License 2.0 | 6 votes |
def mount(self, append=False): pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) if not self.is_compatible(): msg = 'Wheel %s not compatible with this Python.' % pathname raise DistlibException(msg) if not self.is_mountable(): msg = 'Wheel %s is marked as not mountable.' % pathname raise DistlibException(msg) if pathname in sys.path: logger.debug('%s already in path', pathname) else: if append: sys.path.append(pathname) else: sys.path.insert(0, pathname) extensions = self._get_extensions() if extensions: if _hook not in sys.meta_path: sys.meta_path.append(_hook) _hook.add(pathname, extensions)
Example #3
Source File: proto_support.py From recipes-py with Apache License 2.0 | 6 votes |
def _check_digest(proto_package, dgst): """Checks protos installed in `{proto_package_path}/PB`. Args: * proto_package_base (str) - The absolute path to the folder where we will look for '.../PB/csum * dgst (str) - The digest of the proto files which we believe need to be built. Returns True iff csum matches dgst. """ try: csum_path = os.path.join(proto_package, 'PB', 'csum') with open(csum_path, 'rb') as cur_dgst_f: return cur_dgst_f.read() == dgst except (OSError, IOError) as exc: if exc.errno != errno.ENOENT: raise
Example #4
Source File: wheel.py From recruit with Apache License 2.0 | 6 votes |
def metadata(self): pathname = os.path.join(self.dirname, self.filename) name_ver = '%s-%s' % (self.name, self.version) info_dir = '%s.dist-info' % name_ver wrapper = codecs.getreader('utf-8') with ZipFile(pathname, 'r') as zf: wheel_metadata = self.get_wheel_metadata(zf) wv = wheel_metadata['Wheel-Version'].split('.', 1) file_version = tuple([int(i) for i in wv]) if file_version < (1, 1): fn = 'METADATA' else: fn = METADATA_FILENAME try: metadata_filename = posixpath.join(info_dir, fn) with zf.open(metadata_filename) as bf: wf = wrapper(bf) result = Metadata(fileobj=wf) except KeyError: raise ValueError('Invalid wheel, because %s is ' 'missing' % fn) return result
Example #5
Source File: database.py From recruit with Apache License 2.0 | 6 votes |
def _get_records(self): """ Get the list of installed files for the distribution :return: A list of tuples of path, hash and size. Note that hash and size might be ``None`` for some entries. The path is exactly as stored in the file (which is as in PEP 376). """ results = [] r = self.get_distinfo_resource('RECORD') with contextlib.closing(r.as_stream()) as stream: with CSVReader(stream=stream) as record_reader: # Base location is parent dir of .dist-info dir #base_location = os.path.dirname(self.path) #base_location = os.path.abspath(base_location) for row in record_reader: missing = [None for i in range(len(row), 3)] path, checksum, size = row + missing #if not os.path.isabs(path): # path = path.replace('/', os.sep) # path = os.path.join(base_location, path) results.append((path, checksum, size)) return results
Example #6
Source File: cmd.py From recipes-py with Apache License 2.0 | 6 votes |
def export_protos(destination): """Exports the compiled protos for the bundle. The engine initialization process has already built all protos and made them importable as `PB`. We rely on `PB.__path__` because this allows the `--proto-override` flag to work. Args: * repo (RecipeRepo) - The repo to export. * destination (str) - The absolute path we're exporting to (we'll export to a subfolder `_pb/PB`). """ shutil.copytree( PB_PATH[0], # root of generated PB folder. os.path.join(destination, '_pb', 'PB'), ignore=lambda _base, names: [n for n in names if n.endswith('.pyc')], )
Example #7
Source File: stream.py From recipes-py with Apache License 2.0 | 6 votes |
def open_binary(self, name, content_type=None, tags=None, for_process=False): """Returns (file): A file-like object for a single binary stream. This creates a new butler BINARY stream with the specified parameters. Args: name (str): the LogDog name of the stream. content_type (str): The optional content type of the stream. If None, a default content type will be chosen by the Butler. tags (dict): An optional key/value dictionary pair of LogDog stream tags. for_process (bool): Indicates that this stream will be directly attached to a subprocess's stdout/stderr Returns (file): A file-like object to a Butler binary stream. This object can have UTF-8 content written to it with its `write` method, and must be closed when finished using its `close` method. """ params = StreamParams.make( name=posixpath.join(self._namespace, name), type=StreamParams.BINARY, content_type=content_type, tags=tags) return self._BasicStream(self, params, self.new_connection(params, for_process))
Example #8
Source File: lookup.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def adjust_uri(self, uri, relativeto): """Adjust the given ``uri`` based on the given relative URI.""" key = (uri, relativeto) if key in self._uri_cache: return self._uri_cache[key] if uri[0] != "/": if relativeto is not None: v = self._uri_cache[key] = posixpath.join( posixpath.dirname(relativeto), uri ) else: v = self._uri_cache[key] = "/" + uri else: v = self._uri_cache[key] = uri return v
Example #9
Source File: stream.py From recipes-py with Apache License 2.0 | 6 votes |
def open_datagram(self, name, content_type=None, tags=None): """Creates a new butler DATAGRAM stream with the specified parameters. Args: name (str): the LogDog name of the stream. content_type (str): The optional content type of the stream. If None, a default content type will be chosen by the Butler. tags (dict): An optional key/value dictionary pair of LogDog stream tags. Returns (_DatagramStream): A datagram stream object. Datagrams can be written to it using its `send` method. This object must be closed when finished by using its `close` method. """ params = StreamParams.make( name=posixpath.join(self._namespace, name), type=StreamParams.DATAGRAM, content_type=content_type, tags=tags) return self._DatagramStream(self, params, self.new_connection(params, False))
Example #10
Source File: lookup.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def adjust_uri(self, uri, relativeto): """Adjust the given ``uri`` based on the given relative URI.""" key = (uri, relativeto) if key in self._uri_cache: return self._uri_cache[key] if uri[0] != "/": if relativeto is not None: v = self._uri_cache[key] = posixpath.join( posixpath.dirname(relativeto), uri ) else: v = self._uri_cache[key] = "/" + uri else: v = self._uri_cache[key] = uri return v
Example #11
Source File: database.py From recruit with Apache License 2.0 | 6 votes |
def shared_locations(self): """ A dictionary of shared locations whose keys are in the set 'prefix', 'purelib', 'platlib', 'scripts', 'headers', 'data' and 'namespace'. The corresponding value is the absolute path of that category for this distribution, and takes into account any paths selected by the user at installation time (e.g. via command-line arguments). In the case of the 'namespace' key, this would be a list of absolute paths for the roots of namespace packages in this distribution. The first time this property is accessed, the relevant information is read from the SHARED file in the .dist-info directory. """ result = {} shared_path = os.path.join(self.path, 'SHARED') if os.path.isfile(shared_path): with codecs.open(shared_path, 'r', encoding='utf-8') as f: lines = f.read().splitlines() for line in lines: key, value = line.split('=', 1) if key == 'namespace': result.setdefault(key, []).append(value) else: result[key] = value return result
Example #12
Source File: database.py From recruit with Apache License 2.0 | 6 votes |
def write_shared_locations(self, paths, dry_run=False): """ Write shared location information to the SHARED file in .dist-info. :param paths: A dictionary as described in the documentation for :meth:`shared_locations`. :param dry_run: If True, the action is logged but no file is actually written. :return: The path of the file written to. """ shared_path = os.path.join(self.path, 'SHARED') logger.info('creating %s', shared_path) if dry_run: return None lines = [] for key in ('prefix', 'lib', 'headers', 'scripts', 'data'): path = paths[key] if os.path.isdir(paths[key]): lines.append('%s=%s' % (key, path)) for ns in paths.get('namespace', ()): lines.append('namespace=%s' % ns) with codecs.open(shared_path, 'w', encoding='utf-8') as f: f.write('\n'.join(lines)) return shared_path
Example #13
Source File: autosummary__init__.py From pyGSTi with Apache License 2.0 | 6 votes |
def import_by_name(name, prefixes=[None]): """Import a Python object that has the given *name*, under one of the *prefixes*. The first name that succeeds is used. """ tried = [] for prefix in prefixes: try: if prefix: prefixed_name = '.'.join([prefix, name]) else: prefixed_name = name obj, parent, modname = _import_by_name(prefixed_name) return prefixed_name, obj, parent, modname except ImportError: tried.append(prefixed_name) raise ImportError('no module named %s' % ' or '.join(tried))
Example #14
Source File: navigate.py From qutebrowser with GNU General Public License v3.0 | 6 votes |
def _get_incdec_value(match, inc_or_dec, count): """Get an incremented/decremented URL based on a URL match.""" pre, zeroes, number, post = match.groups() # This should always succeed because we match \d+ val = int(number) if inc_or_dec == 'decrement': if val < count: raise Error("Can't decrement {} by {}!".format(val, count)) val -= count elif inc_or_dec == 'increment': val += count else: raise ValueError("Invalid value {} for inc_or_dec!".format(inc_or_dec)) if zeroes: if len(number) < len(str(val)): zeroes = zeroes[1:] elif len(number) > len(str(val)): zeroes += '0' return ''.join([pre, zeroes, str(val), post])
Example #15
Source File: database.py From recruit with Apache License 2.0 | 6 votes |
def check_installed_files(self): """ Checks that the hashes and sizes of the files in ``RECORD`` are matched by the files themselves. Returns a (possibly empty) list of mismatches. Each entry in the mismatch list will be a tuple consisting of the path, 'exists', 'size' or 'hash' according to what didn't match (existence is checked first, then size, then hash), the expected value and the actual value. """ mismatches = [] record_path = os.path.join(self.path, 'installed-files.txt') if os.path.exists(record_path): for path, _, _ in self.list_installed_files(): if path == record_path: continue if not os.path.exists(path): mismatches.append((path, 'exists', True, False)) return mismatches
Example #16
Source File: routing.py From recruit with Apache License 2.0 | 6 votes |
def make_redirect_url(self, path_info, query_args=None, domain_part=None): """Creates a redirect URL. :internal: """ suffix = "" if query_args: suffix = "?" + self.encode_query_args(query_args) return str( "%s://%s/%s%s" % ( self.url_scheme or "http", self.get_host(domain_part), posixpath.join( self.script_name[:-1].lstrip("/"), path_info.lstrip("/") ), suffix, ) )
Example #17
Source File: proto_support.py From recipes-py with Apache License 2.0 | 6 votes |
def __call__(self, dirname): """Makes a directory. Args: * dirname (str) - Directory to make (abs or relative). """ if dirname in self.made_dirs: return toks = dirname.split(os.path.sep) try: os.makedirs(dirname) except OSError as ex: if ex.errno != errno.EEXIST: raise curpath = toks[0] + os.path.sep for tok in toks[1:]: curpath = os.path.join(curpath, tok) self.made_dirs.add(curpath)
Example #18
Source File: index.py From recruit with Apache License 2.0 | 6 votes |
def _get_index_urls_locations(self, project_name): """Returns the locations found via self.index_urls Checks the url_name on the main (first in the list) index and use this url_name to produce all locations """ def mkurl_pypi_url(url): loc = posixpath.join( url, urllib_parse.quote(canonicalize_name(project_name))) # For maximum compatibility with easy_install, ensure the path # ends in a trailing slash. Although this isn't in the spec # (and PyPI can handle it without the slash) some other index # implementations might break if they relied on easy_install's # behavior. if not loc.endswith('/'): loc = loc + '/' return loc return [mkurl_pypi_url(url) for url in self.index_urls]
Example #19
Source File: proto_support.py From recipes-py with Apache License 2.0 | 6 votes |
def _collect_protos(argfile_fd, proto_files, dest): """Copies all proto_files into dest. Writes this list of files to `argfile_fd` which will be passed to protoc. Args: * argfile_fd (int): An open writable file descriptor for the argfile. * proto_files (List[Tuple[src_abspath: str, dest_relpath: str]]) * dest (str): Path to the directory where we should collect the .proto files. Side-effects: * Each dest_relpath is written to `argfile_fd` on its own line. * Closes `argfile_fd`. """ try: _makedirs = _DirMaker() for src_abspath, dest_relpath in proto_files: destpath = os.path.join(dest, dest_relpath) _makedirs(os.path.dirname(destpath)) shutil.copyfile(src_abspath, destpath) os.write(argfile_fd, dest_relpath) os.write(argfile_fd, '\n') finally: os.close(argfile_fd) # for windows
Example #20
Source File: routing.py From recruit with Apache License 2.0 | 6 votes |
def __str__(self): message = [] message.append("Could not build url for endpoint %r" % self.endpoint) if self.method: message.append(" (%r)" % self.method) if self.values: message.append(" with values %r" % sorted(self.values.keys())) message.append(".") if self.suggested: if self.endpoint == self.suggested.endpoint: if self.method and self.method not in self.suggested.methods: message.append( " Did you mean to use methods %r?" % sorted(self.suggested.methods) ) missing_values = self.suggested.arguments.union( set(self.suggested.defaults or ()) ) - set(self.values.keys()) if missing_values: message.append( " Did you forget to specify values %r?" % sorted(missing_values) ) else: message.append(" Did you mean %r instead?" % self.suggested.endpoint) return u"".join(message)
Example #21
Source File: security.py From recruit with Apache License 2.0 | 6 votes |
def safe_join(directory, *pathnames): """Safely join `directory` and one or more untrusted `pathnames`. If this cannot be done, this function returns ``None``. :param directory: the base directory. :param pathnames: the untrusted pathnames relative to that directory. """ parts = [directory] for filename in pathnames: if filename != "": filename = posixpath.normpath(filename) for sep in _os_alt_seps: if sep in filename: return None if os.path.isabs(filename) or filename == ".." or filename.startswith("../"): return None parts.append(filename) return posixpath.join(*parts)
Example #22
Source File: hcp.py From neuropythy with GNU Affero General Public License v3.0 | 6 votes |
def _load_subject(ppath, url, credentials, cache_directory, df, sid): ''' Creates a pseudo-path for the given subject and loads that subject as an hcp subject then returns it. ''' from neuropythy.hcp import subject from posixpath import join as urljoin pm = ppath._path_data['pathmod'] creds = ppath.credentials # Make the pseudo-path; if auto-downloading is set to false, we want to create a pseudo-path # from only the cache path if config['hcp_auto_download'] in [False, None]: ppath = pseudo_path(os.path.join(cache_directory, str(sid)), delete=False) else: ppath = pseudo_path((pm.s3fs, urljoin(url, str(sid))), credentials=credentials, cache_path=os.path.join(cache_directory, str(sid)), delete=False) # the base dir will be deleted if needs be return subject(ppath, default_alignment=df, name=str(sid))
Example #23
Source File: database.py From recruit with Apache License 2.0 | 5 votes |
def list_distinfo_files(self, absolute=False): """ Iterates over the ``installed-files.txt`` entries and returns paths for each line if the path is pointing to a file located in the ``.egg-info`` directory or one of its subdirectories. :parameter absolute: If *absolute* is ``True``, each returned path is transformed into a local absolute path. Otherwise the raw value from ``installed-files.txt`` is returned. :type absolute: boolean :returns: iterator of paths """ record_path = os.path.join(self.path, 'installed-files.txt') skip = True with codecs.open(record_path, 'r', encoding='utf-8') as f: for line in f: line = line.strip() if line == './': skip = False continue if not skip: p = os.path.normpath(os.path.join(self.path, line)) if p.startswith(self.path): if absolute: yield p else: yield line
Example #24
Source File: wheel.py From recruit with Apache License 2.0 | 5 votes |
def get_wheel_metadata(self, zf): name_ver = '%s-%s' % (self.name, self.version) info_dir = '%s.dist-info' % name_ver metadata_filename = posixpath.join(info_dir, 'WHEEL') with zf.open(metadata_filename) as bf: wf = codecs.getreader('utf-8')(bf) message = message_from_file(wf) return dict(message)
Example #25
Source File: database.py From recruit with Apache License 2.0 | 5 votes |
def _yield_distributions(self): """ Yield .dist-info and/or .egg(-info) distributions. """ # We need to check if we've seen some resources already, because on # some Linux systems (e.g. some Debian/Ubuntu variants) there are # symlinks which alias other files in the environment. seen = set() for path in self.path: finder = resources.finder_for_path(path) if finder is None: continue r = finder.find('') if not r or not r.is_container: continue rset = sorted(r.resources) for entry in rset: r = finder.find(entry) if not r or r.path in seen: continue if self._include_dist and entry.endswith(DISTINFO_EXT): possible_filenames = [METADATA_FILENAME, WHEEL_METADATA_FILENAME] for metadata_filename in possible_filenames: metadata_path = posixpath.join(entry, metadata_filename) pydist = finder.find(metadata_path) if pydist: break else: continue with contextlib.closing(pydist.as_stream()) as stream: metadata = Metadata(fileobj=stream, scheme='legacy') logger.debug('Found %s', r.path) seen.add(r.path) yield new_dist_class(r.path, metadata=metadata, env=self) elif self._include_egg and entry.endswith(('.egg-info', '.egg')): logger.debug('Found %s', r.path) seen.add(r.path) yield old_dist_class(r.path, self)
Example #26
Source File: wheel.py From recruit with Apache License 2.0 | 5 votes |
def filename(self): """ Build and return a filename from the various components. """ if self.buildver: buildver = '-' + self.buildver else: buildver = '' pyver = '.'.join(self.pyver) abi = '.'.join(self.abi) arch = '.'.join(self.arch) # replace - with _ as a local version separator version = self.version.replace('-', '_') return '%s-%s%s-%s-%s-%s.whl' % (self.name, version, buildver, pyver, abi, arch)
Example #27
Source File: wheel.py From recruit with Apache License 2.0 | 5 votes |
def _derive_abi(): parts = ['cp', VER_SUFFIX] if sysconfig.get_config_var('Py_DEBUG'): parts.append('d') if sysconfig.get_config_var('WITH_PYMALLOC'): parts.append('m') if sysconfig.get_config_var('Py_UNICODE_SIZE') == 4: parts.append('u') return ''.join(parts)
Example #28
Source File: routing.py From recruit with Apache License 2.0 | 5 votes |
def __init__(self, map, *items): BaseConverter.__init__(self, map) self.regex = "(?:%s)" % "|".join([re.escape(x) for x in items])
Example #29
Source File: routing.py From recruit with Apache License 2.0 | 5 votes |
def __repr__(self): if self.map is None: return u"<%s (unbound)>" % self.__class__.__name__ tmp = [] for is_dynamic, data in self._trace: if is_dynamic: tmp.append(u"<%s>" % data) else: tmp.append(data) return u"<%s %s%s -> %s>" % ( self.__class__.__name__, repr((u"".join(tmp)).lstrip(u"|")).lstrip(u"u"), self.methods is not None and u" (%s)" % u", ".join(self.methods) or u"", self.endpoint, )
Example #30
Source File: security.py From recruit with Apache License 2.0 | 5 votes |
def gen_salt(length): """Generate a random string of SALT_CHARS with specified ``length``.""" if length <= 0: raise ValueError("Salt length must be positive") return "".join(_sys_rng.choice(SALT_CHARS) for _ in range_type(length))