store.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:pypi-legacy 作者: pypa 项目源码 文件源码
def rename_package(self, old, new):
        ''' Rename a package. Relies on cascaded updates.
        '''
        cursor = self.get_cursor()
        date = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
        safe_execute(cursor, '''update packages set name=%s where name=%s''',
                     (new, old))
        safe_execute(cursor, '''update journals set name=%s where name=%s''',
                     (new, old))
        # move all files on disk
        sql = '''select id, blake2_256_digest, filename, path
            from release_files where name=%s'''
        safe_execute(cursor, sql, (new,))
        for fid, digest, filename, path in cursor.fetchall():
            assert digest is not None, "Cannot Move a file without a blake2 digest"
            oldname = path
            newname = self.gen_file_path(digest, filename)
            safe_execute(
                cursor,
                "update release_files set path=%s where id=%s",
                (newname, fid),
            )
            self.package_bucket.copy_key(
                os.path.join("packages", newname),
                self.package_bucket.name,
                os.path.join("packages", oldname),
            )
            self._deleted_files.add(oldname)

        self.add_journal_entry(new, None, "rename from %s" % old, date,
                                                    self.username, self.userip)

        self._add_invalidation(new)
        self._add_invalidation(old)
        self._add_invalidation(None)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号