Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by h1439878.stratoserver.net (8.14.2/8.14.2/Debian-2build1) with ESMTP id r6BLZ0fU027817 for ; Thu, 11 Jul 2013 23:35:01 +0200 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx108) with ESMTP (Nemesis) id 0M3MdA-1U6nrL0LYm-00r2NQ for ; Thu, 11 Jul 2013 23:34:55 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id r6BLW92Z015406 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 11 Jul 2013 23:32:09 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id r6BES88f012550; Thu, 11 Jul 2013 23:32:08 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 10327656 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 11 Jul 2013 23:32:08 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id r6BLM8Bl022650 for ; Thu, 11 Jul 2013 23:22:08 +0200 Received: from mail-ee0-f44.google.com (mail-ee0-f44.google.com [74.125.83.44]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id r6BLM1ng013646 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=FAIL) for ; Thu, 11 Jul 2013 23:22:04 +0200 Received: by mail-ee0-f44.google.com with SMTP id c13so5876624eek.31 for ; Thu, 11 Jul 2013 14:22:01 -0700 (PDT) X-Received: by 10.15.36.72 with SMTP id h48mr21895140eev.33.1373577721596; Thu, 11 Jul 2013 14:22:01 -0700 (PDT) Received: from palladium.home (host109-153-181-47.range109-153.btcentralplus.com. [109.153.181.47]) by mx.google.com with ESMTPSA id p49sm72479574eeu.2.2013.07.11.14.21.59 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 11 Jul 2013 14:22:00 -0700 (PDT) User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130620 Thunderbird/17.0.7 MIME-Version: 1.0 References: <51C94FA0.1080803@morningstar2.co.uk> <51DD0EBD.6080308@morningstar2.co.uk> <51DF2000.30703@morningstar2.co.uk> X-Enigmail-Version: 1.5.1 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Message-ID: <51DF21F5.8020800@morningstar2.co.uk> Date: Thu, 11 Jul 2013 22:21:57 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: l3keys feature request To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <51DF2000.30703@morningstar2.co.uk> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: Envelope-To: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=V3; X-GMX-Antivirus: 0 (no virus found) X-UI-Filterresults: notjunk:1;V01:K0:gfOtEvm88VM=:AeuD62hS8M0tMs2gHqJZga d2LGFbnIR7ixG27qbVcRTFzgu9oycIeB+h9vgHaFu7c68WMqYMdYRJ7p7yt1px/38bvk4RI wPEuT5ykwexbZlGXb+9yb0h/KHmDKODK+2xT3RElzXduMyTq3s8AiSJNpHnbqpGEwJLb6En 03L6AhxIOZOy2y3IfqBRXlnU0J2qbymJ+sj80AFuurfzycXdFQmxhaWu7mpt6Tuy5G0GUp/ DgdPd6lFqrU9ItGRpCrf3oYRtFgIOboMz3CjXlOQ+lC+dNck7BSSEla2A5IEuwob+qqKFp7 kTZU6tgKmOPK6NvNQlrEXxt3WIabA6Pcc4Kz+idE+yWKePfQFdISF6vV8HK8NrKOI5kBUZy RsT+qhF5ZTBehBF8JPsnc5cI13rsoLbdlu7yV8Y4IwFf2q1JXB3YH9RQLQ0oJWbD5tOxpwg oi8lWjjpg+sgVpEqtSkgNOI/Tha0rtxu9DbsuexPW1WEklaeYnGxfk7ZKfN0dafQLCJter9 Q3CJvPkca3tESBfNwFKSUaET6/Z35DpP+3EUWu/Yh5MkLnPMMcNteeHgHLEkjmi9sPdHVDq l7+kTQLV3v+YxcFBppthRQBp2vvxJVdlg909Cfjt+S4m+PccFWMeGkcUbPpghO79H68jnPD jt5D7KHpr/6ph11WcVx7F1NXqIN8kD32pC/2Hh4nNzCjtybQ96eBuQDJrNj6nsS89x03lNi FJBGyeGE5X1t26LcPuj8WOpvS2ZeJcXUvficIWhmxLMLhafjptsXyL0vVMSncCCiSzYRoz/ g1XMuAMHqe1QpBu0aGyq3Vzn9WTOrlLZuBsJEVttYm/Pv1nl9Y8pd+p6lF5chzL8e+a6Y15 JcBmZwf9oKcahrt0xzRIYtyhQO/VVDkIrPxidRoajrHfVDvQkKrDVA/RxErZ4CzLeF6dTJN ekd124VeChobELN4JCqn6FPqLPz1wvmqAWsJS4qPUxDEBRP8l6aymG5nDzhJziSTNVF44+H Akbeb1zSfHwg9c9xR3D1bChw2UP/P3GzQ8XhgNvNrPS8VAw/usydZSJNooWS9HSPWs0UFo/ W0Iug5mpokkeRI6zugtSfCCSWoCHCxE7dubwy/hAlG3BcHoP3uNxyDApcd0/HiQVKXv+M1+ 5rnpofm19UBryan13mx2d4DfD3yzf2xnoPyqXI6/Fsl2QE/4NsD0t8K7F4LEH6y+H2hz4ha IaICUZJXAT3P8T3cZw3XmZfHqt+PZQnwIRHHXJu/W8cj3PyIyxhELgHOEXQKqOOVbg3K5Av rbFiuP0qVpdkzS8pF8QnX+3heptOdXKPRSwsVhcFn7/3rSpPSf0qeEWDnA76ZY9qY6WA9RJ Fr3R2oVrIQUyJ+YcrssojYutK3i0Zg50zVLZIHcWFPyDOGFMk84GOQr5+Y0IuPcW862KhfM mNN2IdOBBGXBASK+OzxW9XwjiaZQyhDWreeyePX7MhpHqVqgl5/tJFDzZToiCIuKP8BUwIx sJYtoWIkVeG4DejVmQ2YKS0yG97xq6HzIdf3Loxm1iJQ4+jBDQTudCHsT844OkhSw52Kr8T GRA6IuxAAqBlPG3fPg0E/cV6UfXvtlSqWCxZCLInwrXyYNTKyYbEJ79x0yKRV50UGCWq+SZ rh7nBD31G X-UI-Loop:V01:pupvNu57P2Q=:eWNW1foP0j36VoZUswNizLvhB1O72cjjTjdcwwJkbdc= Status: R X-Status: X-Keywords: X-UID: 7236 On 11/07/2013 22:13, Joseph Wright wrote: > Looks at what seems to be needed, an ('opt-in') interface such as > > \keys_define:nn { module } > { > key-one .code:n = { \tl_show:n { key-one } }, > key-one .group:n = { a }, > key-two .code:n = { \tl_show:n { key-two } }, > } > \keys_set_grouped:nnn { module } { a } > { key-one = value , key-two = value } > > is not unreasonable. This allows each key to be in exactly one group: > doing multiple groups is possible but more tricky. (Code follows a bit > later.) My thinking with this is that you can simply do a 'filtered' or > 'grouped' setting without having to track when filtering is on/off. > > The above interface leaves open a few questions: > > - How is nesting handled? Does \keys_set:nn within > \keys_set_grouped:nnn respect groups? Does > \keys_set_grouped:nnn within \keys_set_grouped:nnn > work in a union or intersection way? > > - Do unknown keys raise an error, or are they ignored as they > are not in any group? Also - Do unused options need to be collected/available? -- Joseph Wright