Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Ian Kelly Newsgroups: comp.lang.python Subject: Re: Encapsulation in Python Date: Mon, 14 Mar 2016 15:09:37 -0600 Lines: 16 Message-ID: References: <56E17985.7060002@benmezger.nl> <6984dafc-fffd-4d46-a173-421bb5c142d2@googlegroups.com> <4ddc3696-3f71-4598-98a6-929267f51fb9@googlegroups.com> <56e53cd3$0$1586$c3e8da3$5496439d@news.astraweb.com> <1376c684-2e7f-417a-9683-e47789f019fe@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: news.uni-berlin.de RnhVUAEs1TZFKK3CXlkWNwcQDZyglDogOH8VEeB9Qu7g== Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.009 X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'received:209.85.223': 0.03; 'subject:Python': 0.05; 'prefix': 0.07; 'api': 0.09; 'confuse': 0.09; 'ignoring': 0.09; 'python': 0.10; 'importing': 0.15; '11:32': 0.16; '2016': 0.16; 'mess,': 0.16; 'modules,': 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; 'wrote:': 0.16; 'am,': 0.23; 'header:In-Reply-To:1': 0.24; 'mon,': 0.24; 'separate': 0.27; 'message-id:@mail.gmail.com': 0.27; '14,': 0.27; 'symbols': 0.29; 'random': 0.29; 'starts': 0.29; "we're": 0.30; "can't": 0.32; 'possibly': 0.32; 'source': 0.33; 'case,': 0.34; 'except': 0.34; 'received:google.com': 0.35; 'something': 0.35; 'but': 0.36; 'received:209.85': 0.36; '(and': 0.36; 'smaller': 0.36; 'to:addr:python-list': 0.36; 'subject:: ': 0.37; 'johnson': 0.37; 'things': 0.38; 'doing': 0.38; 'detail': 0.38; 'itself': 0.38; 'received:209': 0.38; 'along': 0.39; 'to:addr:python.org': 0.40; 'where': 0.40; 'some': 0.40; "you'll": 0.61; 'mar': 0.65; 'expect.': 0.84; 'tkinter,': 0.84; 'to:name:python': 0.84; 'rick': 0.93; 'subject:skip:E 10': 0.96 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=rNF5FbSMKF4Sj1M1blcuHSm3l2RgEI+DeS/vRVw/9lg=; b=OZJhxgwqU2Hl7JZ9CJLO7jeXPwQyOnaoO20JP9qYV2b48m+wo2feUCfLWYfDJCQ31T Jt40LmUqWTcz0XjB8UoaTFTW0voN09wKBz15vTmjLZCu+6KJy5uWmfzULkSESbMCjBrM RXKjHfmDUNWmKv6RB31ltI2u3VWDVmAQLbYv2DrghMohX/hhNCDfz/hZolrZZp1Qk2Uo IAaWlHHzPk13ycolVZzhENU2qbN+NTDigjvznZtgF7JN9KC/aRoWVjeXk5YekHMUDWA/ BSqq56pMpz/JSTC/uN0Mo3X6AwG4SstyQKBzOjbKaJi4xcyMInIkTgAJqF8g/uDC9kyt UwHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=rNF5FbSMKF4Sj1M1blcuHSm3l2RgEI+DeS/vRVw/9lg=; b=S6Xj0jcsRlj4T4A2gvDmbuvTIQXS+5b855loj4tFnSxgKzf/SuJ1+loIuoCLYaC1vI gXPl/5CGCTgCdUfSWkNaUA7EGBq9yAbxZicfuz4//l+2Y6afxVUvJunkvzRI3QZHNL9q tp4nxpqZtFv8QvnmZdNEojYAzi+FDz4MEVjWjG5FNz0EM4DVMyYOb7uLDMobKXYopF1O CFBRO4Pr6QPdNesPyg7RLrLxpWhPCE6q/UFnBqonomYc9mhaQU0yCab+R5ZXzTf2uw2i OiGxSH7mJ9Nzq2UvXfFM1oaIFEZsFL/ybVYmu9/hgr3GqJWEfhn54flname6FSPyG6Bh du8w== X-Gm-Message-State: AD7BkJJTKpawjH81/Q9hY1lUDcPBbcO0pNP1wWkCIuLcUN/4AKKL1SJueA3e4qurF7kocR1FxDbMO590XsyUfA== X-Received: by 10.107.11.148 with SMTP id 20mr17431723iol.111.1457989817062; Mon, 14 Mar 2016 14:10:17 -0700 (PDT) In-Reply-To: <1376c684-2e7f-417a-9683-e47789f019fe@googlegroups.com> X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com comp.lang.python:104862 On Mon, Mar 14, 2016 at 11:32 AM, Rick Johnson wrote: > Ignoring Tkinter, which is a gawd awful mess, how would you > re-organize the 3,656 symbols in OpenGL.GL into smaller > modules, without dividing them up along some random or > arbitrary lines? In that particular case, I wouldn't, except possibly as an implementation detail with the main OpenGL package importing the contents of all its sub-packages into itself (and I think that if you look at the PyOpenGL source you'll find that it's doing something similar). It's following a well-documented API that is separate from its Python wrapper. It's unfortunate that the only namespacing considered in the design of that API was "everything starts with the prefix gl", but that's what we're stuck with. Moving things around would just confuse users who can't then find them where they expect.