###############
Sample Document
###############

.. default-domain:: ls

=================
xml_rpc for Lasso
=================

This describes the xml_rpc implementation for Lasso. Here's some cross-references, 
remembering that only the roles type, trait, thread, and meth exist: 

- :py:func:`XMLRPC_InConvert` - just testing
- :meth:`rpccall` - umethod
- :meth:`the other one <rpccalll>` - umethod with new title
- :type:`month` - type
- :meth:`m` - unqualified type method
- :meth:`month->m` - qualified type method
- :meth:`~month->m` - qualified type method hiding type name
- :meth:`!month->m=` - qualified type method with link disabled
- :meth:`addition <month->+>` - qualified type method with new title
- :meth:`month->onCreate` - qualified type method
- :meth:`month->_unknowntag` - qualified type method
- :trait:`trait_firstlast` - trait
- :trait:`first_last trait <trait_first_last>` - trait with new title
- :meth:`trait_firstlast->get` - require
- :meth:`Last <trait_firstlast->last>` - provide with new title
- :meth:`person->speak` - modified type method
- :meth:`str->center` - type method outside type
- :thread:`knop_cache` - thread
- :meth:`knop_cache->caches=` - thread method

- :py:meth:`format`
- :py:meth:`Formatter.format`
- :py:meth:`.format`
- :py:meth:`~Formatter.format`
- :py:meth:`~.format`


Methods
=======

.. member:: find(find::bytes[, position::integer, length::integer, patPosition::integer, patLength::integer])

.. py:method:: include_url( \
     url::string, \
     -getParams= ?, \
     -postParams= ?, \
     -sendMimeHeaders= ?, \
     -username= ?, \
     -password= ?, \
     -noData= ?, \
     -verifyPeer= ?, \
     -sslCert= ?, \
     -sslCertType= ?, \
     -sslKey= ?, \
     -sslKeyType= ?, \
     -sslKeyPasswd= ?, \
     -timeout= ?, \
     -connectTimeout= ?, \
     -retrieveMimeHeaders= ?, \
     -options= ?, \
     -string= ?, \
     -basicAuthOnly= ? \
  )

.. py:function:: XMLRPC_InConvert(
      bytes::bytes,
		enc::string
		)

   Converts from something to another thing.

   :param bytes bytes: Description
   :param string enc: Description
   :return: Description of the return value
   :rtype: Type of the return value
   :exception BadThing: uh oh...
   :except UhOh: uh oh...


.. py:class:: Formatter

   - :py:meth:`format`
   - :py:meth:`Formatter.format`
   - :py:meth:`.format`
   - :py:meth:`~Formatter.format`
   - :py:meth:`~.format`

   The :py:class:`Formatter` class has the following public methods:

   .. py:method:: format(format_string, *args, **kwargs)

      :meth:`format` is the primary API method.  It takes a format string and
      an arbitrary set of positional and keyword arguments.
      :meth:`format` is just a wrapper that calls :meth:`vformat`.
      
   .. py:method:: format(format_string)

      single-param version



.. method:: rpccall(params[, method, \
				host, url::string, -uri, ...])::null

   unbound method

   :param params: 
   	Bacon ipsum dolor sit amet ball tip short ribs ribeye meatloaf. Pork chop tongue pork belly shank, sed aliquip in magna irure enim. Sirloin labore shank aliqua, corned beef ball tip bresaola laboris dolore brisket jowl meatball. Elit pork chop dolore in, in venison proident quis tongue anim laboris. Drumstick pariatur id, do tri-tip beef chicken elit pancetta shoulder fugiat. Ut shoulder proident cupidatat, anim pariatur pork loin. Aliquip excepteur aute ad et quis esse.
   :param method:
   :param host:
   :param string url: A website address.
   :param -uri:
   :param ...:
   :return: absolutely nothing.
   :rtype: null
   :see: http://sphinx-doc.org/
   :author: Me


.. type:: month

   Docs for month type.

   :see: LassoGuide.com
   :parent: :type:`staticarray`
   :import: `trait_backEnded`, :trait:`trait_frontEnded`, :trait:`trait_firstlast`

   Bacon ipsum dolor sit amet ball tip short ribs ribeye meatloaf. Pork chop tongue pork belly shank, sed aliquip in magna irure enim. Sirloin labore shank aliqua, corned beef ball tip bresaola laboris dolore brisket jowl meatball. Elit pork chop dolore in, in venison proident quis tongue ani.
   
   - :meth:`m` - unqualified type method while inside type
   - :meth:`rpccall` - goes to unbound method
   - :meth:`->rpccall` - goes to method within current type   

   .. provide:: last()::integer

      a provide within a type's trait block

      :return: the size of the thing
      :rtype: :type:`integer`

   .. member:: rpccall()

   .. member:: first()


   .. member:: m()


   .. member:: m=(m)

      :param m:

   .. member:: onCreate()

      empty constructor

   .. member:: oncreate(year::integer, month::integer[, -optional::boolean])

      ask for year and month

      :param integer year: the year
      :param integer month:
      :param boolean -optional:

   .. member:: +(x::integer)::date

      return full date

      :param integer x: something random
      :return: the full date
      :rtype: :type:`date`

   .. member:: _unknowntag()::integer

      :rtype: :type:`integer`


.. trait:: trait_firstlast

   Provide first() and last() members.

   :see: http://sphinx-doc.org/
   
   :import: trait_forEach

   .. require:: get(position::integer)

      get requirement

      :param integer position: an int of which one to grab

   .. require:: size()::integer

      size requirement

      :return: an int of how large it is
      :rtype: :type:`integer`

   .. provide:: first()

      first provide


   .. provide:: last([...])

      last provide

      :param ...: this is a rest param


.. method:: person->speak(phrase::string)::audio
   
   add a speak member. Or is it a method?
   
   :param string phrase: the phrase to speak
   
And now for some stuff that's actually Python.

.. method:: str->capitalize

   Return a copy of the string with its first character capitalized and the
   rest lowercased.

   For 8-bit strings, this method is locale-dependent.


.. method:: str->center(width[, fillchar])

   Return centered in a string of length *width*. Padding is done using the
   specified *fillchar* (default is a space).

   .. versionchanged:: 2.4
      Support for the *fillchar* argument.

================
knop_cache.lasso
================

.. method:: knop_cachestore(type::string[, expires::integer, session::string, name::string])

   :param string type:
   :param integer expires:
   :param string session:
   :param string name:


.. method:: knop_cachestore(-type::string[, -expires::integer, -session::string, -name::string])

   :param string -type:
   :param integer -expires:
   :param string -session:
   :param string -name:


.. method:: knop_cachefetch(type::string[, session::string, name::string, maxage::date])

   :param string type:
   :param string session:
   :param string name:
   :param date maxage:


.. method:: knop_cachefetch(-type::string[, -session::string, -name::string, -maxage::date])

   :param string -type:
   :param string -session:
   :param string -name:
   :param date -maxage:


.. method:: knop_cachedelete(type::string[, session::string, name::string])

   :param string type:
   :param string session:
   :param string name:


.. method:: knop_cachedelete(-type::string[, -session::string, -name::string])

   :param string -type:
   :param string -session:
   :param string -name:


.. thread:: knop_cache

   knop_cache A thread object acting as base to the different Knop cache 
   methods. Methods: add Stores a cache for the supplied name Parameters name 
   type = required, string, content required, any kind of content, expires 
   optional, integer. Defaults to 600 seconds
   
   get Retrieves a cached content Parameter name type = required, string
   
   getall Returns all cached content as a raw map. Useful for debugging
   
   remove Deletes a cached object Parameter name type = required, string
   
   clear Removes all cached content


   .. member:: active_tick()


   .. member:: add(name::string, content[, expires::integer])

      :param string name:
      :param content:
      :param integer expires:

   .. member:: caches()


   .. member:: caches=(caches)

      :param caches:

   .. member:: clear()


   .. member:: get(name::string)

      :param string name:

   .. member:: getall()


   .. member:: purged()


   .. member:: purged=(purged)

      :param purged:

   .. member:: remove(name::string)

      :param string name:

   .. member:: version()


   .. member:: version=(version)

      :param version:

==============
elements.lasso
==============

.. method:: rpccalll(params[, method, host, url::string, -uri, ...])::null

   unbound method

   :param params:
   :param method:
   :param host:
   :param string url: A website address.
   :param uri:
   :param rest ...:
   :return null: absolutely nothing.
   :see: http://sphinx-doc.org/
   :author: Me


.. type:: moonth

   Docs for month type.

   :see: LassoGuide.com
   :parent: staticarray
   :import: `trait_backEnded`, :trait:`trait_frontEnded`, :trait:`trait_firstlast`

   .. provide:: last()::integer

      a provide within a type's trait block

      :return integer: the size of the thing

   .. member:: first()


   .. member:: m()


   .. member:: m=(m)

      :param m:

   .. member:: oncreate(year::integer, month::integer[, -optional::boolean])

      ask for year and month

      :param integer year: the year
      :param integer month:
      :param boolean optional:

   .. member:: +(x::integer)::date

      return full date

      :param integer x: something random
      :return date: the full date

   .. member:: _unknowntag()::integer

      :return integer: 


.. trait:: trait_first_last

   Provide first() and last() members.

   :see: http://sphinx-doc.org/

   .. require:: get(position::integer)

      get requirement

      :param integer position: an int of which one to grab

   .. require:: size()::integer

      size requirement

      :return integer: an int of how large it is

   .. provide:: first()

      first provide


   .. provide:: last()

      last provide

   .. method:: usingMethod()

      should be using member

.. member:: usingMember()

should be using method

.. method:: a(req)

   :param req:


.. method:: b(req, req2)

   :param req:
   :param req2:


.. method:: c([opt])

   :param opt:


.. method:: d([opt, opt2])

   :param opt:
   :param opt2:


.. method:: e(-kreq)

   :param -kreq:


.. method:: f(-kreq, -kreq2)

   :param -kreq:
   :param -kreq2:


.. method:: g([-kopt])

   :param -kopt:


.. method:: h([-kopt, -kopt2])

   :param -kopt:
   :param -kopt2:


.. method:: i([...])

   :param ...:


.. method:: j([...named])

   :param named:


.. method:: k(req[, opt])

   :param req:
   :param opt:


.. method:: l(req, -kreq)

   :param req:
   :param -kreq:


.. method:: m(req[, -kopt])

   :param req:
   :param -kopt:


.. method:: n(req[, ...])

   :param req:
   :param ...:


.. method:: o(req[, ...named])

   :param req:
   :param named:


.. method:: p([opt], -kreq)

   :param opt:
   :param -kreq:


.. method:: q([opt, -kopt])

   :param opt:
   :param -kopt:


.. method:: r([opt, ...])

   :param opt:
   :param ...:


.. method:: s([opt, ...named])

   :param opt:
   :param named:


.. method:: t(-kreq[, -kopt])

   :param -kreq:
   :param -kopt:


.. method:: u(-kreq[, ...])

   :param -kreq:
   :param ...:


.. method:: v(-kreq[, ...named])

   :param -kreq:
   :param named:


.. method:: w([-kopt], -kreq)

   :param -kopt:
   :param -kreq:


.. method:: x([-kopt, ...])

   :param -kopt:
   :param ...:


.. method:: y([-kopt, ...named])

   :param -kopt:
   :param named:


.. method:: z()
