GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Improved PySet C API · Issue #43090 · python/cpython

Improved PySet C API #43090

New issue
Copy link
New issue
Copy link
Closed
Closed
Improved PySet C API#43090
Copy link
Assignees
warsaw
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)

Description

@warsaw
warsaw
opened on Mar 25, 2006
Issue body actions
BPO 1458476
Nosy @gvanrossum, @warsaw, @rhettinger
Files
  • set.diff
  • 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/warsaw'
    closed_at = <Date 2006-03-30.22:46:53.000>
    created_at = <Date 2006-03-25.22:48:56.000>
    labels = ['interpreter-core']
    title = 'Improved PySet C API'
    updated_at = <Date 2006-03-30.22:46:53.000>
    user = 'https://github.com/warsaw'

    bugs.python.org fields:

    activity = <Date 2006-03-30.22:46:53.000>
    actor = 'barry'
    assignee = 'barry'
    closed = True
    closed_date = None
    closer = None
    components = ['Interpreter Core']
    creation = <Date 2006-03-25.22:48:56.000>
    creator = 'barry'
    dependencies = []
    files = ['7102']
    hgrepos = []
    issue_num = 1458476
    keywords = ['patch']
    message_count = 5.0
    messages = ['49863', '49864', '49865', '49866', '49867']
    nosy_count = 3.0
    nosy_names = ['gvanrossum', 'barry', 'rhettinger']
    pr_nums = []
    priority = 'normal'
    resolution = 'accepted'
    stage = None
    status = 'closed'
    superseder = None
    type = None
    url = 'https://bugs.python.org/issue1458476'
    versions = ['Python 2.5']

    Activity

    1. warsaw commented on Mar 25, 2006

      @warsaw
      warsaw
      on Mar 25, 2006
      MemberAuthor
      More actions

      This patch adds PySet_Next(), PySet_Update(), and
      PySet_Clear(), three very useful API calls when you're
      dealing with concrete PySet objects.

      Patch includes tests and documentation.

    2. warsaw
      closed this as completedon Mar 25, 2006
    3. warsaw
      self-assigned this
      on Mar 25, 2006
    4. warsaw
      added
      interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)
      on Mar 25, 2006
    5. warsaw
      closed this as completedon Mar 25, 2006
    6. warsaw
      self-assigned this
      on Mar 25, 2006
    7. warsaw
      added
      interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)
      on Mar 25, 2006
    8. rhettinger commented on Mar 25, 2006

      @rhettinger
      rhettinger
      on Mar 25, 2006
      Contributor
      More actions

      Logged In: YES
      user_id=80475

      Guido, please reject this patch.

      I laid-out my reasoning in these two posts:

      http://mail.python.org/pipermail/python-dev/2006-March/062652.html
      http://mail.python.org/pipermail/python-dev/2006-March/062737.html

      In particular, I've found PySet_Next() to be disasterously
      error-prone (and have had to fix several hard-to-find bugs
      directly attributable this function). There was some need
      for it in the PyDict API because it fetched key and value
      pointers at the same time and allowed direct modification
      of values. This of course does not apply to sets which do
      not have a value field.

      The PySet_Clear() function should be PyObject_Clear() like
      other functions that have tp_slots. There is no more of a
      case for this function than there would be for PySet_Repr,
      PySet_Len, PySet_IsTrue, or PySet_Print.

      The PySet_Update() function gets in the way of my future
      development plans for this module.

      None of these functions are necessary. They simply
      reflect Barry's programming style and views on having fat,
      overly-concrete APIs.

      This patch is against my wishes for the module. As the
      module author and principal maintainer, if I still have a
      say in the module's development, I strongly prefer
      rejection of this patch.

    9. rhettinger commented on Mar 26, 2006

      @rhettinger
      rhettinger
      on Mar 26, 2006
      Contributor
      More actions

      Logged In: YES
      user_id=80475

      FWIW, I'm open to PyObject_Clear() for an abstract access
      to the tp_clear slot.

      Also, for Barry's use only, I'm open to a semi-private
      _PySet_Next() that isn't part of the official API but
      gives a Barry-specific hook. It should not be a public
      function because of all the problems with the approach.

      Likewise, _PySet_Update() could be done just for Barry's
      group. I need to keep PySet_Update() open until Py2.6
      since the API may evolve to allow a variable length
      argument list.

    10. gvanrossum commented on Mar 27, 2006

      @gvanrossum
      gvanrossum
      on Mar 27, 2006
      Member
      More actions

      Logged In: YES
      user_id=6380

      I'm rejecting this unread, because I'm not ready to jump
      into this issue. The discussion should continue without me.

    11. warsaw commented on Mar 30, 2006

      @warsaw
      warsaw
      on Mar 30, 2006
      MemberAuthor
      More actions

      Logged In: YES
      user_id=12800

      r43465

    12. ezio-melotti
      transferred this issue fromon Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    • @warsaw
      warsaw

    Labels

    interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.