Example #1
0
def init(home):
    """Convert a directory into a Dflat directory."""
    contents = [x for x in os.listdir(home) if x != 'lock.txt']
    info = open(j(home, 'dflat-info.txt'), 'w')
    namaste.dirtype(home, 'dflat_%s' % DFLAT_VERSION, verbose=False)
    info.write(_anvl('Object-scheme', 'Dflat/%s' % DFLAT_VERSION))
    info.write(_anvl('Manifest-scheme', 'Checkm/0.1'))
    info.write(_anvl('Full-scheme', 'Dnatural/%s' % DNATURAL_VERSION))
    info.write(_anvl('Delta-scheme', 'ReDD/%s' % REDD_VERSION))
    info.write(_anvl('Current-scheme', 'file'))
    info.write(_anvl('Class-scheme', 'CLOP/0.3'))
    info.close()
    os.mkdir(j(home, 'log'))
    version = _new_version(home)
    _set_current(home, version)
    # move original inhabitants into their new apartment
    for filename in contents:
        os.rename(j(home, filename),
                  j(home, version, 'full', 'producer', filename))
    _update_manifest(j(home, version))

    # can't use decorator since the log directory doesn't exist when
    # init is called
    log_file = j(home, 'log', 'dflat.log')
    _configure_logger(log_file)
    logging.info("initialized dflat: %s", home)
Example #2
0
 def test_type(self):
     self.assertFalse(os.path.isfile(os.path.join(TESTDIR, '0=bagit_0.1')))
     namaste.dirtype(TESTDIR, 'bagit_0.1')
     self.assertTrue(os.path.isfile(os.path.join(TESTDIR, '0=bagit_0.1')))
     f = open(os.path.join(TESTDIR, '0=bagit_0.1'))
     self.assertEqual(f.read(), "bagit_0.1\n")
     f.close()
Example #3
0
File: dflat.py Project: edsu/dflat
def init(home):
    """Convert a directory into a Dflat directory."""
    contents = [x for x in os.listdir(home) if x != 'lock.txt']
    info = open(j(home, 'dflat-info.txt'), 'w')
    namaste.dirtype(home, 'dflat_%s' % DFLAT_VERSION, verbose=False)
    info.write(_anvl('Object-scheme', 'Dflat/%s' % DFLAT_VERSION))
    info.write(_anvl('Manifest-scheme', 'Checkm/0.1'))
    info.write(_anvl('Full-scheme', 'Dnatural/%s' % DNATURAL_VERSION))
    info.write(_anvl('Delta-scheme', 'ReDD/%s' % REDD_VERSION))
    info.write(_anvl('Current-scheme', 'file'))
    info.write(_anvl('Class-scheme', 'CLOP/0.3'))
    info.close()
    os.mkdir(j(home, 'log'))
    version = _new_version(home)
    _set_current(home, version)
    # move original inhabitants into their new apartment
    for filename in contents:
        os.rename(j(home, filename),
                  j(home, version, 'full', 'producer', filename))
    _update_manifest(j(home, version))

    # can't use decorator since the log directory doesn't exist when
    # init is called
    log_file = j(home, 'log', 'dflat.log')
    _configure_logger(log_file)
    logging.info("initialized dflat: %s", home)
Example #4
0
 def test_type(self):
     self.assertFalse(os.path.isfile(os.path.join(TESTDIR, '0=bagit_0.1')))
     namaste.dirtype(TESTDIR, 'bagit_0.1') 
     self.assertTrue(os.path.isfile(os.path.join(TESTDIR, '0=bagit_0.1')))
     f = open(os.path.join(TESTDIR, '0=bagit_0.1'))
     self.assertEqual(f.read(), "bagit_0.1\n")
     f.close()
Example #5
0
File: dflat.py Project: edsu/dflat
def _new_version(home):
    """Create base directories for a new full version of the Dflat."""
    version = _next_version(home)
    os.mkdir(j(home, version))
    os.mkdir(j(home, version, 'full'))
    namaste.dirtype(j(home, version, 'full'), 'dnatural_%s' % DNATURAL_VERSION,
                    verbose=False)
    os.mkdir(j(home, version, 'full', 'producer'))
    open(j(home, version, 'manifest.txt'), 'w').close()
    return version
Example #6
0
def _new_version(home):
    """Create base directories for a new full version of the Dflat."""
    version = _next_version(home)
    os.mkdir(j(home, version))
    os.mkdir(j(home, version, 'full'))
    namaste.dirtype(j(home, version, 'full'),
                    'dnatural_%s' % DNATURAL_VERSION,
                    verbose=False)
    os.mkdir(j(home, version, 'full', 'producer'))
    open(j(home, version, 'manifest.txt'), 'w').close()
    return version
Example #7
0
def commit(home):  #, msg=None):
    """Commit a modified version to the Dflat."""
    current_version = _current_version(home)
    modified_version = _latest_version(home)
    if current_version == modified_version:
        _print("nothing to commit")
        return
    _update_manifest(j(home, modified_version))
    delta = _delta(home, current_version, modified_version)
    if not _has_changes(delta):
        _print("no changes")
        return

    redd_home = j(home, current_version, 'delta')
    os.mkdir(redd_home)
    namaste.dirtype(redd_home, 'redd_%s' % REDD_VERSION, verbose=False)

    changed = False
    if len(delta['deleted']) > 0:
        changed = True
        os.mkdir(j(redd_home, 'add'))
        for filename in delta['deleted']:
            os.renames(j(home, current_version, 'full', filename),
                       j(redd_home, 'add', filename))
    if len(delta['added']) > 0:
        changed = True
        delete = open(j(redd_home, 'delete.txt'), 'w')
        for filename in delta['added']:
            delete.write("%s\n" % quote(filename))
        delete.close()

    if len(delta['modified']) > 0:
        changed = True
        if not os.path.isdir(j(redd_home, 'add')):
            os.mkdir(j(redd_home, 'add'))
        delete = open(j(redd_home, 'delete.txt'), 'a')
        for filename in delta['modified']:
            delete.write("%s\n" % quote(filename))
            os.renames(j(home, current_version, 'full', filename),
                       j(redd_home, 'add', filename))
        delete.close()

    shutil.rmtree(j(home, current_version, 'full'))
    _set_current(home, modified_version)

    if changed:
        _update_manifest(j(home, current_version), is_delta=True)

    logging.info('committed %s %s', modified_version, delta)
    _print("committed %s" % modified_version)

    return delta
Example #8
0
File: dflat.py Project: edsu/dflat
def commit(home): #, msg=None):
    """Commit a modified version to the Dflat."""
    current_version = _current_version(home)
    modified_version = _latest_version(home)
    if current_version == modified_version:
        _print("nothing to commit")
        return
    _update_manifest(j(home, modified_version))
    delta = _delta(home, current_version, modified_version)
    if not _has_changes(delta):
        _print("no changes")
        return

    redd_home = j(home, current_version, 'delta')
    os.mkdir(redd_home)
    namaste.dirtype(redd_home, 'redd_%s' % REDD_VERSION, verbose=False)

    changed = False
    if len(delta['deleted']) > 0:
        changed = True
        os.mkdir(j(redd_home, 'add'))
        for filename in delta['deleted']:
            os.renames(j(home, current_version, 'full', filename),
                       j(redd_home, 'add', filename))
    if len(delta['added']) > 0:
        changed = True
        delete = open(j(redd_home, 'delete.txt'), 'w')
        for filename in delta['added']:
            delete.write("%s\n" % quote(filename))
        delete.close()

    if len(delta['modified']) > 0:
        changed = True
        if not os.path.isdir(j(redd_home, 'add')):
            os.mkdir(j(redd_home, 'add'))
        delete = open(j(redd_home, 'delete.txt'), 'a')
        for filename in delta['modified']:
            delete.write("%s\n" % quote(filename))
            os.renames(j(home, current_version, 'full', filename),
                       j(redd_home, 'add', filename))
        delete.close()

    shutil.rmtree(j(home, current_version, 'full'))
    _set_current(home, modified_version)

    if changed:
        _update_manifest(j(home, current_version), is_delta=True)

    logging.info('committed %s %s', modified_version, delta)
    _print("committed %s" % modified_version)

    return delta
Example #9
0
def commit(home, msg=None):
    v1 = _current_version(home)
    v2 = _latest_version(home)
    if v1 == v2:
        _print("nothing to commit")
        return
    _update_manifest(j(home, v2))
    delta = _delta(home, v1, v2)
    if not _has_changes(delta):
        _print("no changes")
        return 

    redd_home = j(home, v1, 'delta')
    os.mkdir(redd_home)
    namaste.dirtype(redd_home, 'redd_%s' % redd_version, verbose=False)

    changed = False
    if len(delta['deleted']) > 0:
        changed = True
        os.mkdir(j(redd_home, 'add'))
        for filename in delta['deleted']:
            os.renames(j(home, v1, 'full', filename), j(redd_home, 'add', filename))
    if len(delta['added']) > 0:
        changed = True
        delete = open(j(redd_home, 'delete.txt'), 'w')
        for filename in delta['added']:
            delete.write("%s\n" % urllib.quote(filename))
        delete.close()

    if len(delta['modified']) > 0:
        changed = True
        if not os.path.isdir(j(redd_home, 'add')):
            os.mkdir(j(redd_home, 'add'))
        delete = open(j(redd_home, 'delete.txt'), 'a')
        for filename in delta['modified']:
            delete.write("%s\n" % urllib.quote(filename))
            os.renames(j(home, v1, 'full', filename), j(redd_home, 'add', filename))
        delete.close()


    shutil.rmtree(j(home, v1, 'full'))
    _set_current(home, v2)

    if changed:
        _update_manifest(j(home, v1), is_delta=True)

    logging.info('committed %s %s' % (v2, delta))
    _print("committed %s" % v2)


    return delta
Example #10
0
def _new_version(home):
    v = _next_version(home)
    os.mkdir(j(home, v))
    os.mkdir(j(home, v, 'full'))
    namaste.dirtype(j(home, v, 'full'), 'dnatural_%s' % dnatural_version,
                    verbose=False)
    os.mkdir(j(home, v, 'full', 'admin'))
    os.mkdir(j(home, v, 'full', 'annotation'))
    os.mkdir(j(home, v, 'full', 'data'))
    os.mkdir(j(home, v, 'full', 'enrichment'))
    os.mkdir(j(home, v, 'full', 'log'))
    os.mkdir(j(home, v, 'full', 'metadata'))
    open(j(home, v, 'manifest.txt'), 'w')
    open(j(home, v, 'full', 'relationships.ttl'), 'w')
    return v
Example #11
0
 def test_get(self):
     namaste.dirtype(TESTDIR, 'bagit_0.1') 
     namaste.who(TESTDIR, "Twain,M.")
     namaste.what(TESTDIR, "Hamlet")
     namaste.when(TESTDIR, "2005")
     namaste.where(TESTDIR, "Seattle")
     tags = namaste.get(TESTDIR)
     tags.sort()
     self.assertEqual(tags, [
             os.path.join(TESTDIR, namaste._make_namaste(0, 'bagit_0.1')),
             os.path.join(TESTDIR, namaste._make_namaste(1, 'Twain,M.')),
             os.path.join(TESTDIR, namaste._make_namaste(2, 'Hamlet')),
             os.path.join(TESTDIR, namaste._make_namaste(3, '2005')),
             os.path.join(TESTDIR, namaste._make_namaste(4, 'Seattle')),
             ])
Example #12
0
 def test_get(self):
     namaste.dirtype(TESTDIR, 'bagit_0.1')
     namaste.who(TESTDIR, "Twain,M.")
     namaste.what(TESTDIR, "Hamlet")
     namaste.when(TESTDIR, "2005")
     namaste.where(TESTDIR, "Seattle")
     tags = namaste.get(TESTDIR)
     tags.sort()
     self.assertEqual(tags, [
         os.path.join(TESTDIR, namaste._make_namaste(0, 'bagit_0.1')),
         os.path.join(TESTDIR, namaste._make_namaste(1, 'Twain,M.')),
         os.path.join(TESTDIR, namaste._make_namaste(2, 'Hamlet')),
         os.path.join(TESTDIR, namaste._make_namaste(3, '2005')),
         os.path.join(TESTDIR, namaste._make_namaste(4, 'Seattle')),
     ])
Example #13
0
def init(home):
    contents = filter(lambda x: x != 'lock.txt', os.listdir(home))
    info = open(j(home, 'dflat-info.txt'), 'w')
    namaste.dirtype(home, 'dflat_%s' % dflat_version, verbose=False)
    info.write(_anvl('Object-scheme', 'Dflat/%s' % dflat_version))
    info.write(_anvl('Manifest-scheme', 'Checkm/0.1'))
    info.write(_anvl('Full-scheme', 'Dnatural/0.12'))
    info.write(_anvl('Delta-scheme', 'ReDD/0.1'))
    info.write(_anvl('Current-scheme', 'file'))
    info.write(_anvl('Class-scheme', 'CLOP/0.3'))
    info.close()
    os.mkdir(j(home, 'log'))
    version = _new_version(home)
    _set_current(home, version)
    # move original inhabitants into their new apartment
    for f in contents:
        os.rename(j(home, f), j(home, version, 'full', 'data', f))
    _update_manifest(j(home, version))

    # can't use decorator since the log directory doesn't exist when 
    # init is called
    log_file = j(home, 'log', 'dflat.log')
    _configure_logger(log_file)
    logging.info("initialized dflat: %s" % home)
Example #14
0
 def test_gettypes(self):
     namaste.dirtype(TESTDIR, "bagit_2323.1")
     namaste.dirtype(TESTDIR, "redd_0.1333")
     namaste.dirtype(TESTDIR, "dflat_34.22")
     types = namaste.get_types(TESTDIR)
     self.assertTrue("bagit" in types)
     self.assertTrue("redd" in types)
     self.assertTrue("dflat" in types)
     self.assertEqual(types["bagit"], {"name": "bagit", "major": "2323", "minor": "1"})
     self.assertEqual(types["redd"], {"name": "redd", "major": "0", "minor": "1333"})
     self.assertEqual(types["dflat"], {"name": "dflat", "major": "34", "minor": "22"})
Example #15
0
 def test_gettypes(self):
     namaste.dirtype(TESTDIR, 'bagit_2323.1')
     namaste.dirtype(TESTDIR, 'redd_0.1333')
     namaste.dirtype(TESTDIR, 'dflat_34.22')
     types = namaste.get_types(TESTDIR)
     self.assertTrue('bagit' in types)
     self.assertTrue('redd' in types)
     self.assertTrue('dflat' in types)
     self.assertEqual(types['bagit'], {'name':'bagit', 'major':'2323', 'minor':'1'})
     self.assertEqual(types['redd'], {'name':'redd', 'major':'0', 'minor':'1333'})
     self.assertEqual(types['dflat'], {'name':'dflat', 'major':'34', 'minor':'22'})
Example #16
0
 def test_gettypes(self):
     namaste.dirtype(TESTDIR, 'bagit_2323.1')
     namaste.dirtype(TESTDIR, 'redd_0.1333')
     namaste.dirtype(TESTDIR, 'dflat_34.22')
     types = namaste.get_types(TESTDIR)
     self.assertTrue('bagit' in types)
     self.assertTrue('redd' in types)
     self.assertTrue('dflat' in types)
     self.assertEqual(types['bagit'], {
         'name': 'bagit',
         'major': '2323',
         'minor': '1'
     })
     self.assertEqual(types['redd'], {
         'name': 'redd',
         'major': '0',
         'minor': '1333'
     })
     self.assertEqual(types['dflat'], {
         'name': 'dflat',
         'major': '34',
         'minor': '22'
     })
Example #17
0
 def test_type(self):
     self.assertFalse(os.path.isfile(os.path.join(TESTDIR, "0=bagit_0.1")))
     namaste.dirtype(TESTDIR, "bagit_0.1")
     self.assertTrue(os.path.isfile(os.path.join(TESTDIR, "0=bagit_0.1")))
     self.assertEqual(open(os.path.join(TESTDIR, "0=bagit_0.1")).read(), "bagit_0.1\n")