404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.147.103.106: ~ $
# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors
#
# This module is part of GitDB and is released under
# the New BSD License: http://www.opensource.org/licenses/bsd-license.php
from gitdb.db.base import (
    CompoundDB,
    ObjectDBW,
    FileDBBase
)

from gitdb.db.loose import LooseObjectDB
from gitdb.db.pack import PackedDB
from gitdb.db.ref import ReferenceDB

from gitdb.exc import InvalidDBRoot

import os

__all__ = ('GitDB', )


class GitDB(FileDBBase, ObjectDBW, CompoundDB):

    """A git-style object database, which contains all objects in the 'objects'
    subdirectory

    ``IMPORTANT``: The usage of this implementation is highly discouraged as it fails to release file-handles.
    This can be a problem with long-running processes and/or big repositories.
    """
    # Configuration
    PackDBCls = PackedDB
    LooseDBCls = LooseObjectDB
    ReferenceDBCls = ReferenceDB

    # Directories
    packs_dir = 'pack'
    loose_dir = ''
    alternates_dir = os.path.join('info', 'alternates')

    def __init__(self, root_path):
        """Initialize ourselves on a git objects directory"""
        super().__init__(root_path)

    def _set_cache_(self, attr):
        if attr == '_dbs' or attr == '_loose_db':
            self._dbs = list()
            loose_db = None
            for subpath, dbcls in ((self.packs_dir, self.PackDBCls),
                                   (self.loose_dir, self.LooseDBCls),
                                   (self.alternates_dir, self.ReferenceDBCls)):
                path = self.db_path(subpath)
                if os.path.exists(path):
                    self._dbs.append(dbcls(path))
                    if dbcls is self.LooseDBCls:
                        loose_db = self._dbs[-1]
                    # END remember loose db
                # END check path exists
            # END for each db type

            # should have at least one subdb
            if not self._dbs:
                raise InvalidDBRoot(self.root_path())
            # END handle error

            # we the first one should have the store method
            assert loose_db is not None and hasattr(loose_db, 'store'), "First database needs store functionality"

            # finally set the value
            self._loose_db = loose_db
        else:
            super()._set_cache_(attr)
        # END handle attrs

    #{ ObjectDBW interface

    def store(self, istream):
        return self._loose_db.store(istream)

    def ostream(self):
        return self._loose_db.ostream()

    def set_ostream(self, ostream):
        return self._loose_db.set_ostream(ostream)

    #} END objectdbw interface

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 377 B 0644
base.py File 8.85 KB 0644
git.py File 2.61 KB 0644
loose.py File 7.89 KB 0644
mem.py File 3.27 KB 0644
pack.py File 7.12 KB 0644
ref.py File 2.54 KB 0644