Skip to content

Have shutil.copytree(), copy() and copystat() use cached scandir() stat()s #77876

@giampaolo

Description

@giampaolo
BPO 33695
Nosy @brettcannon, @ncoghlan, @vstinner, @giampaolo, @benjaminp, @tarekziade, @benhoyt, @serhiy-storchaka, @1st1
PRs
  • bpo-33695 shutil.copytree() + os.scandir() cache #7874
  • bpo-35652 Add use_srcentry parameter to shutil.copytree() II #11425
  • bpo-35652: shutil.copytree(copy_function=...): pass DirEntry instead of path str  #11997
  • bpo-38688: Consume iterator and create list of entries to prevent infinite loop #17098
  • Files
  • bench.py
  • bpo-33695.patch
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = 'https://github.com/giampaolo'
    closed_at = <Date 2018-11-12.14:19:18.809>
    created_at = <Date 2018-05-30.12:22:35.667>
    labels = ['3.8', 'library', 'performance']
    title = 'Have shutil.copytree(), copy() and copystat() use cached scandir() stat()s'
    updated_at = <Date 2019-11-09.13:25:26.220>
    user = 'https://github.com/giampaolo'

    bugs.python.org fields:

    activity = <Date 2019-11-09.13:25:26.220>
    actor = 'kinow'
    assignee = 'giampaolo.rodola'
    closed = True
    closed_date = <Date 2018-11-12.14:19:18.809>
    closer = 'giampaolo.rodola'
    components = ['Library (Lib)']
    creation = <Date 2018-05-30.12:22:35.667>
    creator = 'giampaolo.rodola'
    dependencies = []
    files = ['47624', '47625']
    hgrepos = []
    issue_num = 33695
    keywords = ['patch']
    message_count = 13.0
    messages = ['318175', '320303', '320304', '321852', '322872', '322873', '322901', '322912', '322933', '322975', '322984', '328267', '329732']
    nosy_count = 10.0
    nosy_names = ['brett.cannon', 'ncoghlan', 'vstinner', 'giampaolo.rodola', 'benjamin.peterson', 'tarek', 'stutzbach', 'benhoyt', 'serhiy.storchaka', 'yselivanov']
    pr_nums = ['7874', '11425', '11997', '17098']
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'performance'
    url = 'https://bugs.python.org/issue33695'
    versions = ['Python 3.8']

    Metadata

    Metadata

    Assignees

    Labels

    3.8 (EOL)end of lifeperformancePerformance or resource usagestdlibStandard Library Python modules in the Lib/ directory

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions