| | |
- _ssl._SSLContext(builtins.object)
-
- SSLContext
- builtins.OSError(builtins.Exception)
-
- SSLError
-
- SSLCertVerificationError(SSLError, builtins.ValueError)
- SSLEOFError
- SSLSyscallError
- SSLWantReadError
- SSLWantWriteError
- SSLZeroReturnError
- builtins.object
-
- SSLObject
- builtins.tuple(builtins.object)
-
- DefaultVerifyPaths
- enum.Enum(builtins.object)
-
- .Purpose(_ASN1Object, enum.Enum)
- enum.IntEnum(builtins.int, enum.Enum)
-
- AlertDescription
- SSLErrorNumber
- TLSVersion
- VerifyMode
- enum.IntFlag(builtins.int, enum.Flag)
-
- Options
- VerifyFlags
- socket.socket(_socket.socket)
-
- SSLSocket
- _ASN1Object(_ASN1Object)
-
- .Purpose(_ASN1Object, enum.Enum)
class AlertDescription(enum.IntEnum) |
| |
AlertDescription(value, names=None, *, module=None, qualname=None, type=None, start=1)
An enumeration. |
| |
- Method resolution order:
- AlertDescription
- enum.IntEnum
- builtins.int
- enum.Enum
- builtins.object
Data and other attributes defined here:
- ALERT_DESCRIPTION_ACCESS_DENIED = <AlertDescription.ALERT_DESCRIPTION_ACCESS_DENIED: 49>
- ALERT_DESCRIPTION_BAD_CERTIFICATE = <AlertDescription.ALERT_DESCRIPTION_BAD_CERTIFICATE: 42>
- ALERT_DESCRIPTION_BAD_CERTIFICATE_HASH_VALUE = <AlertDescription.ALERT_DESCRIPTION_BAD_CERTIFICATE_HASH_VALUE: 114>
- ALERT_DESCRIPTION_BAD_CERTIFICATE_STATUS_RESPONSE = <AlertDescription.ALERT_DESCRIPTION_BAD_CERTIFICATE_STATUS_RESPONSE: 113>
- ALERT_DESCRIPTION_BAD_RECORD_MAC = <AlertDescription.ALERT_DESCRIPTION_BAD_RECORD_MAC: 20>
- ALERT_DESCRIPTION_CERTIFICATE_EXPIRED = <AlertDescription.ALERT_DESCRIPTION_CERTIFICATE_EXPIRED: 45>
- ALERT_DESCRIPTION_CERTIFICATE_REVOKED = <AlertDescription.ALERT_DESCRIPTION_CERTIFICATE_REVOKED: 44>
- ALERT_DESCRIPTION_CERTIFICATE_UNKNOWN = <AlertDescription.ALERT_DESCRIPTION_CERTIFICATE_UNKNOWN: 46>
- ALERT_DESCRIPTION_CERTIFICATE_UNOBTAINABLE = <AlertDescription.ALERT_DESCRIPTION_CERTIFICATE_UNOBTAINABLE: 111>
- ALERT_DESCRIPTION_CLOSE_NOTIFY = <AlertDescription.ALERT_DESCRIPTION_CLOSE_NOTIFY: 0>
- ALERT_DESCRIPTION_DECODE_ERROR = <AlertDescription.ALERT_DESCRIPTION_DECODE_ERROR: 50>
- ALERT_DESCRIPTION_DECOMPRESSION_FAILURE = <AlertDescription.ALERT_DESCRIPTION_DECOMPRESSION_FAILURE: 30>
- ALERT_DESCRIPTION_DECRYPT_ERROR = <AlertDescription.ALERT_DESCRIPTION_DECRYPT_ERROR: 51>
- ALERT_DESCRIPTION_HANDSHAKE_FAILURE = <AlertDescription.ALERT_DESCRIPTION_HANDSHAKE_FAILURE: 40>
- ALERT_DESCRIPTION_ILLEGAL_PARAMETER = <AlertDescription.ALERT_DESCRIPTION_ILLEGAL_PARAMETER: 47>
- ALERT_DESCRIPTION_INSUFFICIENT_SECURITY = <AlertDescription.ALERT_DESCRIPTION_INSUFFICIENT_SECURITY: 71>
- ALERT_DESCRIPTION_INTERNAL_ERROR = <AlertDescription.ALERT_DESCRIPTION_INTERNAL_ERROR: 80>
- ALERT_DESCRIPTION_NO_RENEGOTIATION = <AlertDescription.ALERT_DESCRIPTION_NO_RENEGOTIATION: 100>
- ALERT_DESCRIPTION_PROTOCOL_VERSION = <AlertDescription.ALERT_DESCRIPTION_PROTOCOL_VERSION: 70>
- ALERT_DESCRIPTION_RECORD_OVERFLOW = <AlertDescription.ALERT_DESCRIPTION_RECORD_OVERFLOW: 22>
- ALERT_DESCRIPTION_UNEXPECTED_MESSAGE = <AlertDescription.ALERT_DESCRIPTION_UNEXPECTED_MESSAGE: 10>
- ALERT_DESCRIPTION_UNKNOWN_CA = <AlertDescription.ALERT_DESCRIPTION_UNKNOWN_CA: 48>
- ALERT_DESCRIPTION_UNKNOWN_PSK_IDENTITY = <AlertDescription.ALERT_DESCRIPTION_UNKNOWN_PSK_IDENTITY: 115>
- ALERT_DESCRIPTION_UNRECOGNIZED_NAME = <AlertDescription.ALERT_DESCRIPTION_UNRECOGNIZED_NAME: 112>
- ALERT_DESCRIPTION_UNSUPPORTED_CERTIFICATE = <AlertDescription.ALERT_DESCRIPTION_UNSUPPORTED_CERTIFICATE: 43>
- ALERT_DESCRIPTION_UNSUPPORTED_EXTENSION = <AlertDescription.ALERT_DESCRIPTION_UNSUPPORTED_EXTENSION: 110>
- ALERT_DESCRIPTION_USER_CANCELLED = <AlertDescription.ALERT_DESCRIPTION_USER_CANCELLED: 90>
Data descriptors inherited from enum.Enum:
- name
- The name of the Enum member.
- value
- The value of the Enum member.
Readonly properties inherited from enum.EnumMeta:
- __members__
- Returns a mapping of member name->value.
This mapping lists all enum members, including aliases. Note that this
is a read-only view of the internal mapping.
|
CertificateError = class SSLCertVerificationError(SSLError, builtins.ValueError) |
| |
A certificate could not be verified. |
| |
- Method resolution order:
- SSLCertVerificationError
- SSLError
- builtins.OSError
- builtins.ValueError
- builtins.Exception
- builtins.BaseException
- builtins.object
Data descriptors defined here:
- __weakref__
- list of weak references to the object (if defined)
Methods inherited from SSLError:
- __str__(self, /)
- Return str(self).
Methods inherited from builtins.OSError:
- __init__(self, /, *args, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- __reduce__(...)
- Helper for pickle.
Static methods inherited from builtins.OSError:
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
Data descriptors inherited from builtins.OSError:
- characters_written
- errno
- POSIX exception code
- filename
- exception filename
- filename2
- second exception filename
- strerror
- exception strerror
- winerror
- Win32 exception code
Methods inherited from builtins.BaseException:
- __delattr__(self, name, /)
- Implement delattr(self, name).
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __repr__(self, /)
- Return repr(self).
- __setattr__(self, name, value, /)
- Implement setattr(self, name, value).
- __setstate__(...)
- with_traceback(...)
- Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
Data descriptors inherited from builtins.BaseException:
- __cause__
- exception cause
- __context__
- exception context
- __dict__
- __suppress_context__
- __traceback__
- args
|
class DefaultVerifyPaths(builtins.tuple) |
| |
DefaultVerifyPaths(cafile, capath, openssl_cafile_env, openssl_cafile, openssl_capath_env, openssl_capath)
DefaultVerifyPaths(cafile, capath, openssl_cafile_env, openssl_cafile, openssl_capath_env, openssl_capath) |
| |
- Method resolution order:
- DefaultVerifyPaths
- builtins.tuple
- builtins.object
Methods defined here:
- __getnewargs__(self)
- Return self as a plain tuple. Used by copy and pickle.
- __repr__(self)
- Return a nicely formatted representation string
- _asdict(self)
- Return a new dict which maps field names to their values.
- _replace(self, /, **kwds)
- Return a new DefaultVerifyPaths object replacing specified fields with new values
Class methods defined here:
- _make(iterable) from builtins.type
- Make a new DefaultVerifyPaths object from a sequence or iterable
Static methods defined here:
- __new__(_cls, cafile, capath, openssl_cafile_env, openssl_cafile, openssl_capath_env, openssl_capath)
- Create new instance of DefaultVerifyPaths(cafile, capath, openssl_cafile_env, openssl_cafile, openssl_capath_env, openssl_capath)
Data descriptors defined here:
- cafile
- Alias for field number 0
- capath
- Alias for field number 1
- openssl_cafile_env
- Alias for field number 2
- openssl_cafile
- Alias for field number 3
- openssl_capath_env
- Alias for field number 4
- openssl_capath
- Alias for field number 5
Data and other attributes defined here:
- _field_defaults = {}
- _fields = ('cafile', 'capath', 'openssl_cafile_env', 'openssl_cafile', 'openssl_capath_env', 'openssl_capath')
Methods inherited from builtins.tuple:
- __add__(self, value, /)
- Return self+value.
- __contains__(self, key, /)
- Return key in self.
- __eq__(self, value, /)
- Return self==value.
- __ge__(self, value, /)
- Return self>=value.
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __getitem__(self, key, /)
- Return self[key].
- __gt__(self, value, /)
- Return self>value.
- __hash__(self, /)
- Return hash(self).
- __iter__(self, /)
- Implement iter(self).
- __le__(self, value, /)
- Return self<=value.
- __len__(self, /)
- Return len(self).
- __lt__(self, value, /)
- Return self<value.
- __mul__(self, value, /)
- Return self*value.
- __ne__(self, value, /)
- Return self!=value.
- __rmul__(self, value, /)
- Return value*self.
- count(self, value, /)
- Return number of occurrences of value.
- index(self, value, start=0, stop=9223372036854775807, /)
- Return first index of value.
Raises ValueError if the value is not present.
Class methods inherited from builtins.tuple:
- __class_getitem__(...) from builtins.type
- See PEP 585
|
class Options(enum.IntFlag) |
| |
Options(value, names=None, *, module=None, qualname=None, type=None, start=1)
An enumeration. |
| |
- Method resolution order:
- Options
- enum.IntFlag
- builtins.int
- enum.Flag
- enum.Enum
- builtins.object
Data and other attributes defined here:
- OP_ALL = <Options.OP_ALL: -2147483564>
- OP_CIPHER_SERVER_PREFERENCE = <Options.OP_CIPHER_SERVER_PREFERENCE: 4194304>
- OP_ENABLE_MIDDLEBOX_COMPAT = <Options.OP_ENABLE_MIDDLEBOX_COMPAT: 1048576>
- OP_NO_COMPRESSION = <Options.OP_NO_COMPRESSION: 131072>
- OP_NO_RENEGOTIATION = <Options.OP_NO_RENEGOTIATION:<PHONE_NUMBER>>
- OP_NO_SSLv2 = <Options.OP_NO_SSLv2: 0>
- OP_NO_SSLv3 = <Options.OP_NO_SSLv3: 33554432>
- OP_NO_TICKET = <Options.OP_NO_TICKET: 16384>
- OP_NO_TLSv1 = <Options.OP_NO_TLSv1: 67108864>
- OP_NO_TLSv1_1 = <Options.OP_NO_TLSv1_1: 268435456>
- OP_NO_TLSv1_2 = <Options.OP_NO_TLSv1_2: 134217728>
- OP_NO_TLSv1_3 = <Options.OP_NO_TLSv1_3: 536870912>
Data descriptors inherited from enum.Enum:
- name
- The name of the Enum member.
- value
- The value of the Enum member.
Readonly properties inherited from enum.EnumMeta:
- __members__
- Returns a mapping of member name->value.
This mapping lists all enum members, including aliases. Note that this
is a read-only view of the internal mapping.
|
class Purpose(ssl._ASN1Object, enum.Enum) |
| |
Purpose(value, names=None, *, module=None, qualname=None, type=None, start=1)
SSLContext purpose flags with X509v3 Extended Key Usage objects |
| |
- Method resolution order:
- Purpose
- ssl._ASN1Object
- ssl._ASN1Object
- builtins.tuple
- enum.Enum
- builtins.object
Data and other attributes defined here:
- CLIENT_AUTH = <Purpose.CLIENT_AUTH: _ASN1Object(nid=130, short...Client Authentication', oid='<IP_ADDRESS>.<IP_ADDRESS>.2')>
- SERVER_AUTH = <Purpose.SERVER_AUTH: _ASN1Object(nid=129, short...Server Authentication', oid='<IP_ADDRESS>.<IP_ADDRESS>.1')>
Data descriptors inherited from enum.Enum:
- name
- The name of the Enum member.
- value
- The value of the Enum member.
Readonly properties inherited from enum.EnumMeta:
- __members__
- Returns a mapping of member name->value.
This mapping lists all enum members, including aliases. Note that this
is a read-only view of the internal mapping.
|
class SSLCertVerificationError(SSLError, builtins.ValueError) |
| |
A certificate could not be verified. |
| |
- Method resolution order:
- SSLCertVerificationError
- SSLError
- builtins.OSError
- builtins.ValueError
- builtins.Exception
- builtins.BaseException
- builtins.object
Data descriptors defined here:
- __weakref__
- list of weak references to the object (if defined)
Methods inherited from SSLError:
- __str__(self, /)
- Return str(self).
Methods inherited from builtins.OSError:
- __init__(self, /, *args, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- __reduce__(...)
- Helper for pickle.
Static methods inherited from builtins.OSError:
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
Data descriptors inherited from builtins.OSError:
- characters_written
- errno
- POSIX exception code
- filename
- exception filename
- filename2
- second exception filename
- strerror
- exception strerror
- winerror
- Win32 exception code
Methods inherited from builtins.BaseException:
- __delattr__(self, name, /)
- Implement delattr(self, name).
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __repr__(self, /)
- Return repr(self).
- __setattr__(self, name, value, /)
- Implement setattr(self, name, value).
- __setstate__(...)
- with_traceback(...)
- Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
Data descriptors inherited from builtins.BaseException:
- __cause__
- exception cause
- __context__
- exception context
- __dict__
- __suppress_context__
- __traceback__
- args
|
class SSLContext(_ssl._SSLContext) |
| |
SSLContext(protocol=<_SSLMethod.PROTOCOL_TLS: 2>, *args, **kwargs)
An SSLContext holds various SSL-related configuration options and
data, such as certificates and possibly a private key. |
| |
- Method resolution order:
- SSLContext
- _ssl._SSLContext
- builtins.object
Methods defined here:
- load_default_certs(self, purpose=<Purpose.SERVER_AUTH: _ASN1Object(nid=129, shortname='serverAuth', longname='TLS Web Server Authentication', oid='<IP_ADDRESS>.<IP_ADDRESS>.1')>)
- set_alpn_protocols(self, alpn_protocols)
- set_npn_protocols(self, npn_protocols)
- set_servername_callback(self, server_name_callback)
- wrap_bio(self, incoming, outgoing, server_side=False, server_hostname=None, session=None)
- wrap_socket(self, sock, server_side=False, do_handshake_on_connect=True, suppress_ragged_eofs=True, server_hostname=None, session=None)
Static methods defined here:
- __new__(cls, protocol=<_SSLMethod.PROTOCOL_TLS: 2>, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Readonly properties defined here:
- protocol
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
- hostname_checks_common_name
- maximum_version
- minimum_version
- options
- verify_flags
- verify_mode
Data and other attributes defined here:
- sslobject_class = <class 'ssl.SSLObject'>
- This class implements an interface on top of a low-level SSL object as
implemented by OpenSSL. This object captures the state of an SSL connection
but does not provide any network IO itself. IO needs to be performed
through separate "BIO" objects which are OpenSSL's IO abstraction layer.
This class does not have a public constructor. Instances are returned by
``SSLContext.wrap_bio``. This class is typically used by framework authors
that want to implement asynchronous IO for SSL through memory buffers.
When compared to ``SSLSocket``, this object lacks the following features:
* Any form of network IO, including methods such as ``recv`` and ``send``.
* The ``do_handshake_on_connect`` and ``suppress_ragged_eofs`` machinery.
- sslsocket_class = <class 'ssl.SSLSocket'>
- This class implements a subtype of socket.socket that wraps
the underlying OS socket in an SSL context when necessary, and
provides read and write methods over that channel.
Methods inherited from _ssl._SSLContext:
- cert_store_stats(self, /)
- Returns quantities of loaded X.509 certificates.
X.509 certificates with a CA extension and certificate revocation lists
inside the context's cert store.
NOTE: Certificates in a capath directory aren't loaded unless they have
been used at least once.
- get_ca_certs(self, /, binary_form=False)
- Returns a list of dicts with information of loaded CA certs.
If the optional argument is True, returns a DER-encoded copy of the CA
certificate.
NOTE: Certificates in a capath directory aren't loaded unless they have
been used at least once.
- get_ciphers(self, /)
- load_cert_chain(self, /, certfile, keyfile=None, password=None)
- load_dh_params(self, path, /)
- load_verify_locations(self, /, cafile=None, capath=None, cadata=None)
- session_stats(self, /)
- set_ciphers(self, cipherlist, /)
- set_default_verify_paths(self, /)
- set_ecdh_curve(self, name, /)
Data descriptors inherited from _ssl._SSLContext:
- check_hostname
- keylog_filename
- num_tickets
- Control the number of TLSv1.3 session tickets
- post_handshake_auth
- sni_callback
- Set a callback that will be called when a server name is provided by the SSL/TLS client in the SNI extension.
If the argument is None then the callback is disabled. The method is called
with the SSLSocket, the server name as a string, and the SSLContext object.
See RFC 6066 for details of the SNI extension.
|
class SSLEOFError(SSLError) |
| |
SSL/TLS connection terminated abruptly. |
| |
- Method resolution order:
- SSLEOFError
- SSLError
- builtins.OSError
- builtins.Exception
- builtins.BaseException
- builtins.object
Data descriptors defined here:
- __weakref__
- list of weak references to the object (if defined)
Methods inherited from SSLError:
- __str__(self, /)
- Return str(self).
Methods inherited from builtins.OSError:
- __init__(self, /, *args, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- __reduce__(...)
- Helper for pickle.
Static methods inherited from builtins.OSError:
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
Data descriptors inherited from builtins.OSError:
- characters_written
- errno
- POSIX exception code
- filename
- exception filename
- filename2
- second exception filename
- strerror
- exception strerror
- winerror
- Win32 exception code
Methods inherited from builtins.BaseException:
- __delattr__(self, name, /)
- Implement delattr(self, name).
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __repr__(self, /)
- Return repr(self).
- __setattr__(self, name, value, /)
- Implement setattr(self, name, value).
- __setstate__(...)
- with_traceback(...)
- Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
Data descriptors inherited from builtins.BaseException:
- __cause__
- exception cause
- __context__
- exception context
- __dict__
- __suppress_context__
- __traceback__
- args
|
class SSLError(builtins.OSError) |
| |
An error occurred in the SSL implementation. |
| |
- Method resolution order:
- SSLError
- builtins.OSError
- builtins.Exception
- builtins.BaseException
- builtins.object
Methods defined here:
- __str__(self, /)
- Return str(self).
Methods inherited from builtins.OSError:
- __init__(self, /, *args, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- __reduce__(...)
- Helper for pickle.
Static methods inherited from builtins.OSError:
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
Data descriptors inherited from builtins.OSError:
- characters_written
- errno
- POSIX exception code
- filename
- exception filename
- filename2
- second exception filename
- strerror
- exception strerror
- winerror
- Win32 exception code
Methods inherited from builtins.BaseException:
- __delattr__(self, name, /)
- Implement delattr(self, name).
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __repr__(self, /)
- Return repr(self).
- __setattr__(self, name, value, /)
- Implement setattr(self, name, value).
- __setstate__(...)
- with_traceback(...)
- Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
Data descriptors inherited from builtins.BaseException:
- __cause__
- exception cause
- __context__
- exception context
- __dict__
- __suppress_context__
- __traceback__
- args
|
class SSLErrorNumber(enum.IntEnum) |
| |
SSLErrorNumber(value, names=None, *, module=None, qualname=None, type=None, start=1)
An enumeration. |
| |
- Method resolution order:
- SSLErrorNumber
- enum.IntEnum
- builtins.int
- enum.Enum
- builtins.object
Data and other attributes defined here:
- SSL_ERROR_EOF = <SSLErrorNumber.SSL_ERROR_EOF: 8>
- SSL_ERROR_INVALID_ERROR_CODE = <SSLErrorNumber.SSL_ERROR_INVALID_ERROR_CODE: 10>
- SSL_ERROR_SSL = <SSLErrorNumber.SSL_ERROR_SSL: 1>
- SSL_ERROR_SYSCALL = <SSLErrorNumber.SSL_ERROR_SYSCALL: 5>
- SSL_ERROR_WANT_CONNECT = <SSLErrorNumber.SSL_ERROR_WANT_CONNECT: 7>
- SSL_ERROR_WANT_READ = <SSLErrorNumber.SSL_ERROR_WANT_READ: 2>
- SSL_ERROR_WANT_WRITE = <SSLErrorNumber.SSL_ERROR_WANT_WRITE: 3>
- SSL_ERROR_WANT_X509_LOOKUP = <SSLErrorNumber.SSL_ERROR_WANT_X509_LOOKUP: 4>
- SSL_ERROR_ZERO_RETURN = <SSLErrorNumber.SSL_ERROR_ZERO_RETURN: 6>
Data descriptors inherited from enum.Enum:
- name
- The name of the Enum member.
- value
- The value of the Enum member.
Readonly properties inherited from enum.EnumMeta:
- __members__
- Returns a mapping of member name->value.
This mapping lists all enum members, including aliases. Note that this
is a read-only view of the internal mapping.
|
class SSLObject(builtins.object) |
| |
SSLObject(*args, **kwargs)
This class implements an interface on top of a low-level SSL object as
implemented by OpenSSL. This object captures the state of an SSL connection
but does not provide any network IO itself. IO needs to be performed
through separate "BIO" objects which are OpenSSL's IO abstraction layer.
This class does not have a public constructor. Instances are returned by
``SSLContext.wrap_bio``. This class is typically used by framework authors
that want to implement asynchronous IO for SSL through memory buffers.
When compared to ``SSLSocket``, this object lacks the following features:
* Any form of network IO, including methods such as ``recv`` and ``send``.
* The ``do_handshake_on_connect`` and ``suppress_ragged_eofs`` machinery. |
| |
Methods defined here:
- __init__(self, *args, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- cipher(self)
- Return the currently selected cipher as a 3-tuple ``(name,
ssl_version, secret_bits)``.
- compression(self)
- Return the current compression algorithm in use, or ``None`` if
compression was not negotiated or not supported by one of the peers.
- do_handshake(self)
- Start the SSL/TLS handshake.
- get_channel_binding(self, cb_type='tls-unique')
- Get channel binding data for current connection. Raise ValueError
if the requested `cb_type` is not supported. Return bytes of the data
or None if the data is not available (e.g. before the handshake).
- getpeercert(self, binary_form=False)
- Returns a formatted version of the data in the certificate provided
by the other end of the SSL channel.
Return None if no certificate was provided, {} if a certificate was
provided, but not validated.
- pending(self)
- Return the number of bytes that can be read immediately.
- read(self, len=1024, buffer=None)
- Read up to 'len' bytes from the SSL object and return them.
If 'buffer' is provided, read into this buffer and return the number of
bytes read.
- selected_alpn_protocol(self)
- Return the currently selected ALPN protocol as a string, or ``None``
if a next protocol was not negotiated or if ALPN is not supported by one
of the peers.
- selected_npn_protocol(self)
- Return the currently selected NPN protocol as a string, or ``None``
if a next protocol was not negotiated or if NPN is not supported by one
of the peers.
- shared_ciphers(self)
- Return a list of ciphers shared by the client during the handshake or
None if this is not a valid server connection.
- unwrap(self)
- Start the SSL shutdown handshake.
- verify_client_post_handshake(self)
- version(self)
- Return a string identifying the protocol version used by the
current SSL channel.
- write(self, data)
- Write 'data' to the SSL object and return the number of bytes
written.
The 'data' argument must support the buffer interface.
Readonly properties defined here:
- server_hostname
- The currently set server hostname (for SNI), or ``None`` if no
server hostname is set.
- server_side
- Whether this is a server-side socket.
- session_reused
- Was the client session reused during handshake
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
- context
- The SSLContext that is currently in use.
- session
- The SSLSession for client socket.
|
class SSLSocket(socket.socket) |
| |
SSLSocket(*args, **kwargs)
This class implements a subtype of socket.socket that wraps
the underlying OS socket in an SSL context when necessary, and
provides read and write methods over that channel. |
| |
- Method resolution order:
- SSLSocket
- socket.socket
- _socket.socket
- builtins.object
Methods defined here:
- __init__(self, *args, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- accept(self)
- Accepts a new connection from a remote client, and returns
a tuple containing that new connection wrapped with a server-side
SSL channel, and the address of the remote client.
- cipher(self)
- Return the currently selected cipher as a 3-tuple ``(name,
ssl_version, secret_bits)``.
- compression(self)
- Return the current compression algorithm in use, or ``None`` if
compression was not negotiated or not supported by one of the peers.
- connect(self, addr)
- Connects to remote ADDR, and then wraps the connection in
an SSL channel.
- connect_ex(self, addr)
- Connects to remote ADDR, and then wraps the connection in
an SSL channel.
- do_handshake(self, block=False)
- Start the SSL/TLS handshake.
- dup(self)
- dup() -> socket object
Duplicate the socket. Return a new socket object connected to the same
system resource. The new socket is non-inheritable.
- get_channel_binding(self, cb_type='tls-unique')
- Get channel binding data for current connection. Raise ValueError
if the requested `cb_type` is not supported. Return bytes of the data
or None if the data is not available (e.g. before the handshake).
- getpeercert(self, binary_form=False)
- Returns a formatted version of the data in the certificate provided
by the other end of the SSL channel.
Return None if no certificate was provided, {} if a certificate was
provided, but not validated.
- pending(self)
- Return the number of bytes that can be read immediately.
- read(self, len=1024, buffer=None)
- Read up to LEN bytes and return them.
Return zero-length string on EOF.
- recv(self, buflen=1024, flags=0)
- recv(buffersize[, flags]) -> data
Receive up to buffersize bytes from the socket. For the optional flags
argument, see the Unix manual. When no data is available, block until
at least one byte is available or until the remote end is closed. When
the remote end is closed and all data is read, return the empty string.
- recv_into(self, buffer, nbytes=None, flags=0)
- recv_into(buffer, [nbytes[, flags]]) -> nbytes_read
A version of recv() that stores its data into a buffer rather than creating
a new string. Receive up to buffersize bytes from the socket. If buffersize
is not specified (or 0), receive up to the size available in the given buffer.
See recv() for documentation about the flags.
- recvfrom(self, buflen=1024, flags=0)
- recvfrom(buffersize[, flags]) -> (data, address info)
Like recv(buffersize, flags) but also return the sender's address info.
- recvfrom_into(self, buffer, nbytes=None, flags=0)
- recvfrom_into(buffer[, nbytes[, flags]]) -> (nbytes, address info)
Like recv_into(buffer[, nbytes[, flags]]) but also return the sender's address info.
- recvmsg(self, *args, **kwargs)
- recvmsg_into(self, *args, **kwargs)
- selected_alpn_protocol(self)
- Return the currently selected ALPN protocol as a string, or ``None``
if a next protocol was not negotiated or if ALPN is not supported by one
of the peers.
- selected_npn_protocol(self)
- Return the currently selected NPN protocol as a string, or ``None``
if a next protocol was not negotiated or if NPN is not supported by one
of the peers.
- send(self, data, flags=0)
- send(data[, flags]) -> count
Send a data string to the socket. For the optional flags
argument, see the Unix manual. Return the number of bytes
sent; this may be less than len(data) if the network is busy.
- sendall(self, data, flags=0)
- sendall(data[, flags])
Send a data string to the socket. For the optional flags
argument, see the Unix manual. This calls send() repeatedly
until all data is sent. If an error occurs, it's impossible
to tell how much data has been sent.
- sendfile(self, file, offset=0, count=None)
- Send a file, possibly by using os.sendfile() if this is a
clear-text socket. Return the total number of bytes sent.
- sendmsg(self, *args, **kwargs)
- sendto(self, data, flags_or_addr, addr=None)
- sendto(data[, flags], address) -> count
Like send(data, flags) but allows specifying the destination address.
For IP sockets, the address is a pair (hostaddr, port).
- shared_ciphers(self)
- Return a list of ciphers shared by the client during the handshake or
None if this is not a valid server connection.
- shutdown(self, how)
- shutdown(flag)
Shut down the reading side of the socket (flag == SHUT_RD), the writing side
of the socket (flag == SHUT_WR), or both ends (flag == SHUT_RDWR).
- unwrap(self)
- Start the SSL shutdown handshake.
- verify_client_post_handshake(self)
- version(self)
- Return a string identifying the protocol version used by the
current SSL channel.
- write(self, data)
- Write DATA to the underlying SSL channel. Returns
number of bytes of DATA actually transmitted.
Readonly properties defined here:
- session_reused
- Was the client session reused during handshake
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- context
- The SSLContext that is currently in use.
- session
- The SSLSession for client socket.
Methods inherited from socket.socket:
- __enter__(self)
- __exit__(self, *args)
- __getstate__(self)
- __repr__(self)
- Wrap __repr__() to reveal the real class name and socket
address(es).
- close(self)
- close()
Close the socket. It cannot be used after this call.
- detach(self)
- detach() -> file descriptor
Close the socket object without closing the underlying file descriptor.
The object cannot be used after this call, but the file descriptor
can be reused for other purposes. The file descriptor is returned.
- get_inheritable(self)
- Get the inheritable flag of the socket
- makefile(self, mode='r', buffering=None, *, encoding=None, errors=None, newline=None)
- makefile(...) -> an I/O stream connected to the socket
The arguments are as for io.open() after the filename, except the only
supported mode values are 'r' (default), 'w' and 'b'.
- set_inheritable(self, inheritable)
- Set the inheritable flag of the socket
Readonly properties inherited from socket.socket:
- family
- Read-only access to the address family for this socket.
- type
- Read-only access to the socket type.
Data descriptors inherited from socket.socket:
- __weakref__
- list of weak references to the object (if defined)
Methods inherited from _socket.socket:
- __del__(...)
- __getattribute__(self, name, /)
- Return getattr(self, name).
- bind(...)
- bind(address)
Bind the socket to a local address. For IP sockets, the address is a
pair (host, port); the host must refer to the local host. For raw packet
sockets the address is a tuple (ifname, proto [,pkttype [,hatype [,addr]]])
- fileno(...)
- fileno() -> integer
Return the integer file descriptor of the socket.
- getblocking(...)
- getblocking()
Returns True if socket is in blocking mode, or False if it
is in non-blocking mode.
- getpeername(...)
- getpeername() -> address info
Return the address of the remote endpoint. For IP sockets, the address
info is a pair (hostaddr, port).
- getsockname(...)
- getsockname() -> address info
Return the address of the local endpoint. For IP sockets, the address
info is a pair (hostaddr, port).
- getsockopt(...)
- getsockopt(level, option[, buffersize]) -> value
Get a socket option. See the Unix manual for level and option.
If a nonzero buffersize argument is given, the return value is a
string of that length; otherwise it is an integer.
- gettimeout(...)
- gettimeout() -> timeout
Returns the timeout in seconds (float) associated with socket
operations. A timeout of None indicates that timeouts on socket
operations are disabled.
- ioctl(...)
- ioctl(cmd, option) -> long
Control the socket with WSAIoctl syscall. Currently supported 'cmd' values are
SIO_RCVALL: 'option' must be one of the socket.RCVALL_* constants.
SIO_KEEPALIVE_VALS: 'option' is a tuple of (onoff, timeout, interval).
SIO_LOOPBACK_FAST_PATH: 'option' is a boolean value, and is disabled by default
- listen(...)
- listen([backlog])
Enable a server to accept connections. If backlog is specified, it must be
at least 0 (if it is lower, it is set to 0); it specifies the number of
unaccepted connections that the system will allow before refusing new
connections. If not specified, a default reasonable value is chosen.
- setblocking(...)
- setblocking(flag)
Set the socket to blocking (flag is true) or non-blocking (false).
setblocking(True) is equivalent to settimeout(None);
setblocking(False) is equivalent to settimeout(0.0).
- setsockopt(...)
- setsockopt(level, option, value: int)
setsockopt(level, option, value: buffer)
setsockopt(level, option, None, optlen: int)
Set a socket option. See the Unix manual for level and option.
The value argument can either be an integer, a string buffer, or
None, optlen.
- settimeout(...)
- settimeout(timeout)
Set a timeout on socket operations. 'timeout' can be a float,
giving in seconds, or None. Setting a timeout of None disables
the timeout feature and is equivalent to setblocking(1).
Setting a timeout of zero is the same as setblocking(0).
- share(...)
- share(process_id) -> bytes
Share the socket with another process. The target process id
must be provided and the resulting bytes object passed to the target
process. There the shared socket can be instantiated by calling
socket.fromshare().
Static methods inherited from _socket.socket:
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
Data descriptors inherited from _socket.socket:
- proto
- the socket protocol
- timeout
- the socket timeout
|
class SSLSyscallError(SSLError) |
| |
System error when attempting SSL operation. |
| |
- Method resolution order:
- SSLSyscallError
- SSLError
- builtins.OSError
- builtins.Exception
- builtins.BaseException
- builtins.object
Data descriptors defined here:
- __weakref__
- list of weak references to the object (if defined)
Methods inherited from SSLError:
- __str__(self, /)
- Return str(self).
Methods inherited from builtins.OSError:
- __init__(self, /, *args, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- __reduce__(...)
- Helper for pickle.
Static methods inherited from builtins.OSError:
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
Data descriptors inherited from builtins.OSError:
- characters_written
- errno
- POSIX exception code
- filename
- exception filename
- filename2
- second exception filename
- strerror
- exception strerror
- winerror
- Win32 exception code
Methods inherited from builtins.BaseException:
- __delattr__(self, name, /)
- Implement delattr(self, name).
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __repr__(self, /)
- Return repr(self).
- __setattr__(self, name, value, /)
- Implement setattr(self, name, value).
- __setstate__(...)
- with_traceback(...)
- Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
Data descriptors inherited from builtins.BaseException:
- __cause__
- exception cause
- __context__
- exception context
- __dict__
- __suppress_context__
- __traceback__
- args
|
class SSLWantReadError(SSLError) |
| |
Non-blocking SSL socket needs to read more data
before the requested operation can be completed. |
| |
- Method resolution order:
- SSLWantReadError
- SSLError
- builtins.OSError
- builtins.Exception
- builtins.BaseException
- builtins.object
Data descriptors defined here:
- __weakref__
- list of weak references to the object (if defined)
Methods inherited from SSLError:
- __str__(self, /)
- Return str(self).
Methods inherited from builtins.OSError:
- __init__(self, /, *args, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- __reduce__(...)
- Helper for pickle.
Static methods inherited from builtins.OSError:
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
Data descriptors inherited from builtins.OSError:
- characters_written
- errno
- POSIX exception code
- filename
- exception filename
- filename2
- second exception filename
- strerror
- exception strerror
- winerror
- Win32 exception code
Methods inherited from builtins.BaseException:
- __delattr__(self, name, /)
- Implement delattr(self, name).
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __repr__(self, /)
- Return repr(self).
- __setattr__(self, name, value, /)
- Implement setattr(self, name, value).
- __setstate__(...)
- with_traceback(...)
- Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
Data descriptors inherited from builtins.BaseException:
- __cause__
- exception cause
- __context__
- exception context
- __dict__
- __suppress_context__
- __traceback__
- args
|
class SSLWantWriteError(SSLError) |
| |
Non-blocking SSL socket needs to write more data
before the requested operation can be completed. |
| |
- Method resolution order:
- SSLWantWriteError
- SSLError
- builtins.OSError
- builtins.Exception
- builtins.BaseException
- builtins.object
Data descriptors defined here:
- __weakref__
- list of weak references to the object (if defined)
Methods inherited from SSLError:
- __str__(self, /)
- Return str(self).
Methods inherited from builtins.OSError:
- __init__(self, /, *args, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- __reduce__(...)
- Helper for pickle.
Static methods inherited from builtins.OSError:
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
Data descriptors inherited from builtins.OSError:
- characters_written
- errno
- POSIX exception code
- filename
- exception filename
- filename2
- second exception filename
- strerror
- exception strerror
- winerror
- Win32 exception code
Methods inherited from builtins.BaseException:
- __delattr__(self, name, /)
- Implement delattr(self, name).
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __repr__(self, /)
- Return repr(self).
- __setattr__(self, name, value, /)
- Implement setattr(self, name, value).
- __setstate__(...)
- with_traceback(...)
- Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
Data descriptors inherited from builtins.BaseException:
- __cause__
- exception cause
- __context__
- exception context
- __dict__
- __suppress_context__
- __traceback__
- args
|
class SSLZeroReturnError(SSLError) |
| |
SSL/TLS session closed cleanly. |
| |
- Method resolution order:
- SSLZeroReturnError
- SSLError
- builtins.OSError
- builtins.Exception
- builtins.BaseException
- builtins.object
Data descriptors defined here:
- __weakref__
- list of weak references to the object (if defined)
Methods inherited from SSLError:
- __str__(self, /)
- Return str(self).
Methods inherited from builtins.OSError:
- __init__(self, /, *args, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- __reduce__(...)
- Helper for pickle.
Static methods inherited from builtins.OSError:
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
Data descriptors inherited from builtins.OSError:
- characters_written
- errno
- POSIX exception code
- filename
- exception filename
- filename2
- second exception filename
- strerror
- exception strerror
- winerror
- Win32 exception code
Methods inherited from builtins.BaseException:
- __delattr__(self, name, /)
- Implement delattr(self, name).
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __repr__(self, /)
- Return repr(self).
- __setattr__(self, name, value, /)
- Implement setattr(self, name, value).
- __setstate__(...)
- with_traceback(...)
- Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
Data descriptors inherited from builtins.BaseException:
- __cause__
- exception cause
- __context__
- exception context
- __dict__
- __suppress_context__
- __traceback__
- args
|
class TLSVersion(enum.IntEnum) |
| |
TLSVersion(value, names=None, *, module=None, qualname=None, type=None, start=1)
An enumeration. |
| |
- Method resolution order:
- TLSVersion
- enum.IntEnum
- builtins.int
- enum.Enum
- builtins.object
Data and other attributes defined here:
- MAXIMUM_SUPPORTED = <TLSVersion.MAXIMUM_SUPPORTED: -1>
- MINIMUM_SUPPORTED = <TLSVersion.MINIMUM_SUPPORTED: -2>
- SSLv3 = <TLSVersion.SSLv3: 768>
- TLSv1 = <TLSVersion.TLSv1: 769>
- TLSv1_1 = <TLSVersion.TLSv1_1: 770>
- TLSv1_2 = <TLSVersion.TLSv1_2: 771>
- TLSv1_3 = <TLSVersion.TLSv1_3: 772>
Data descriptors inherited from enum.Enum:
- name
- The name of the Enum member.
- value
- The value of the Enum member.
Readonly properties inherited from enum.EnumMeta:
- __members__
- Returns a mapping of member name->value.
This mapping lists all enum members, including aliases. Note that this
is a read-only view of the internal mapping.
|
class VerifyFlags(enum.IntFlag) |
| |
VerifyFlags(value, names=None, *, module=None, qualname=None, type=None, start=1)
An enumeration. |
| |
- Method resolution order:
- VerifyFlags
- enum.IntFlag
- builtins.int
- enum.Flag
- enum.Enum
- builtins.object
Data and other attributes defined here:
- VERIFY_CRL_CHECK_CHAIN = <VerifyFlags.VERIFY_CRL_CHECK_CHAIN: 12>
- VERIFY_CRL_CHECK_LEAF = <VerifyFlags.VERIFY_CRL_CHECK_LEAF: 4>
- VERIFY_DEFAULT = <VerifyFlags.VERIFY_DEFAULT: 0>
- VERIFY_X509_STRICT = <VerifyFlags.VERIFY_X509_STRICT: 32>
- VERIFY_X509_TRUSTED_FIRST = <VerifyFlags.VERIFY_X509_TRUSTED_FIRST: 32768>
Data descriptors inherited from enum.Enum:
- name
- The name of the Enum member.
- value
- The value of the Enum member.
Readonly properties inherited from enum.EnumMeta:
- __members__
- Returns a mapping of member name->value.
This mapping lists all enum members, including aliases. Note that this
is a read-only view of the internal mapping.
|
class VerifyMode(enum.IntEnum) |
| |
VerifyMode(value, names=None, *, module=None, qualname=None, type=None, start=1)
An enumeration. |
| |
- Method resolution order:
- VerifyMode
- enum.IntEnum
- builtins.int
- enum.Enum
- builtins.object
Data and other attributes defined here:
- CERT_NONE = <VerifyMode.CERT_NONE: 0>
- CERT_OPTIONAL = <VerifyMode.CERT_OPTIONAL: 1>
- CERT_REQUIRED = <VerifyMode.CERT_REQUIRED: 2>
Data descriptors inherited from enum.Enum:
- name
- The name of the Enum member.
- value
- The value of the Enum member.
Readonly properties inherited from enum.EnumMeta:
- __members__
- Returns a mapping of member name->value.
This mapping lists all enum members, including aliases. Note that this
is a read-only view of the internal mapping.
| |


Lecture
Listen to speakers from different countries about the vital of culture and tradition
Cultural Exhibition
Gaze with amusement at the different cultural exhibition from across Africa.
Lecture
Listen to speakers from different countries about the vital of culture and tradition
Lecture
Listen to speakers from different countries about the vital of culture and tradition
Lecture
Listen to speakers from different countries about the vital of culture and tradition


Whether you’re into sport bikes, street bikes, or cruisers, you’ll find motorcycle tires, engine upgrades, motorcycle exhaust, lighting, and everything else for your bike, plus everything for you, the rider. Jackets, helmets, gloves, boots, jewelry, patches, apparel, and on and on. You can expect world-class customer service and technical support 7 days a week. We keep our customers satisfied even when they’re not––with the industry’s best hassle-free return policy. You’ll get your order fast thanks to our quick shipping policy..
We are a motorcycle store, specializing in high-quality motocycle spare parts
Our team of quality assurance experts ensure that only the best gets to you. Our customer service personell ensures that all your inquiries and concerns are handled with utmost speed and accuracy. Your satisfaction is our joy.
Contact us today and avail a 10% discount on all our products! »


2009-2012: University of Ottawa Masters in Biomedical Engineering
Thesis project on advanced optical biosensors for early detection of Leukemia and Lung Cancer.
Accomplishment: Built a stable test platform for interrogating the biosensor and automated measurement acquisition using LabVIEW.
2005-2009: Algonquin College Bachelors of Photonics Engineering
Accomplishment: Part of the very first batch of graduates of the degree program.
Dec 2016: ASTQB - ISTQB in U.S.A CTFL (Certified Tester Foundation Level)
Mar 2019: Cal Lab Access ISO 9001 Lead Auditor - Quality Certification
May 2022: University of Provar Provar Essentials
Jun 2022: Google Google Data Analytics Certificate
Nov 2015 - till date: Philips Healthcare Software Quality Assurance Engineer
Accomplishment(s): Initiated core competencies project to faciliate ramping up the new employees.
Intiated 'Wall of Innovation' project which allowed employees to share their innovative ideas with upper management.
Kicked off regressionization efforts for test suites to increase efficiency and minimize redundancy.
July 2012 - Nov 2015: ZOLL Medical Design Quality Assurance Engineer
Accomplishment(s): Automated testing efforts using Python by interfacing the front panel of the defibrillator to a micro-controller.
Technical Skills
Personal Attributes


List of all archives.
GET /rest/archive/
A JSON array of archives.
| Name | Value | Description |
| name | String | Archive name |
| length | Integer | Archive size |
| lastModified | Date | Last modified date |
| Code | Media Type | Description |
| 200 | application/json | Request successful. |
GET http://localhost:8080/webzip/rest/archive


---
layout: academic
permalink: /background/
title: "background"
float: right
---
{% include pages/title.html title=site.data.experience.title %}
{% include pages/experience.html %}
{% include pages/title.html title=site.data.extracurricular.title %}
{% include pages/extracurricular.html %}
{% include pages/title.html title=site.data.projects.title %}
{% include pages/projects.html %}


About Me
Projects
Contact
Final
Stephanie G. Mondragon
Reliable | Intuitive | Friendly
Have any Questions? Comments? Concerns? Don't be afraid to send me an email.
<EMAIL_ADDRESS>Check out my other social media accounts for even more information on me!


Your education
Hackathons
Your projects
Some more information
Remember that if you have any teammates, they still have to apply by their own, this is an individual application.
{% if not application or application and application.status == 0 %}
{% endif %}


WEEK 33 TUESDAY
Year 1 (Year 2)
FIRST READING 2 Maccabees 6:18-31
“I will leave to the young a noble example of how to die a good death willingly and nobly for the revered and holy laws.”
A reading from the second Book of Maccabees
In those days: Eleazar,
one of the scribes in high position, a man now advanced in age and of noble presence,
was being forced to open his mouth to eat swine's flesh. But he, welcoming
death with honour rather than life with pollution, went up to the rack of his
own accord, spitting out the flesh, as men ought to go who have the courage to
refuse things that it is not right to taste, even for the natural love of life.
Those who were in charge of that unlawful sacrifice took the man aside, because
of their long acquaintance with him, and privately urged him to bring meat of
his own providing, proper for him to use, and pretend that he was eating the
flesh of the sacrificial meal which had been commanded by the king, so that by
doing this he might be saved from death, and be treated kindly on account of
his old friendship with them.  "Such pretence is not worthy of our time of life," he said,
"lest many of the young should suppose that Eleazar
in his ninetieth year has gone over to an alien religion, and through my
pretence, for the sake of living a brief moment longer, they should be led
astray because of me, while I defile and disgrace my old age. For even if for
the present I should avoid the punishment of men, yet whether I live or die I
shall not escape the hands of the Almighty. Therefore, by manfully giving up my
life now, I will show myself worthy of my old age and leave to the young a
noble example of how to die a good death willingly and nobly for the revered
and holy laws." When he had said this, he went at once to the rack. And
those who a little before had acted toward him with good will now changed to
ill will, because the words he had uttered were in their opinion sheer madness.
When he was about to die under the blows, he groaned aloud and said: "It
is clear to the Lord in his holy knowledge that, though I might have been saved
from death, I am enduring terrible sufferings in my body under this beating,
but in my soul I am glad to suffer these things because I fear him." So in
this way he died, leaving in his death an example of nobility and a memorial of
courage, not only to the young but to the great body of his nation.
The word of the Lord
RESPONSORIAL PSALM
Psalm 3:2-3.4-5.6-7 (R. 6b)
R. The Lord upholds me.
How many are my foes, O LORD! How many are rising up
against me! How many are saying about me: 'There is no help for him in God.'
R. The Lord upholds me.
 I cry aloud to the LORD. From his holy mountain he answers me.
R. The Lord upholds me.
I lie down, I sleep and wake, for the LORD upholds
me. I will not fear even thousands of people who are ranged on every side
against me. Arise, LORD; save me, my God.
R. The Lord upholds me.
FIRST READING Revelation 3:1-6.14-22
“If any one opens the door, I will come in to him and eat with him.”
A reading from the Book of Revelation
I, John, heard the
Lord saying to me: “To the angel of the Church in
The word of the Lord
RESPONSORIAL PSALM Psalm l5:2-3a.3bc-4ab.5 (R. Rv 3:21)
R. Him who conquers, I will grant him to sit with me on
my throne.
Whoever walks
without fault; who does what is just, and speaks the
truth from his heart. Who does not slander with his tongue.
R. Him who conquers, I will grant him to sit with me on my
throne.
Who does no wrong to
a neighbour, who casts no slur on a friend, who looks
with scorn on the wicked, but honours those who fear
the LORD.
R. Him who conquers, I will grant him to sit with me on my
throne.
Who lends no money at
interest, and accepts no bribes against the innocent. Such a one shall never be
shaken.
R. Him who conquers, I will grant him to sit with me on my
throne.
R. Alleluia. God loved us and sent his Son to be the expiation for our sins. R. Alleluia.
GOSPEL Luke 19:1-10
“The Son of man came to seek and to save the lost.”
A reading from the holy Gospel according to Luke
At that time: Jesus entered
The Gospel of the Lord


--- title: Bit of Barak date: 1999-12-02T00:00:00.000Z filepathOriginal: photos/camp_bitabarak.jpg filepathThumbnail: photos/camp_bitabarak.thumbnail.jpg filepathPreview: photos/camp_bitabarak.preview.jpg ---
A bit of the Barak group from Netzer Camp.


Reset Game
You think you know JavaScript!!
You will get 20 points for each answer correct, but if you get it incorrect you will get 0 points and lose 10 seconds..
Start Quiz
High Scores
Select
Select
Select
Select
Correct
Incorrect


if (diary %>% select( one_of(outcome) ) %>% summarise_each("unique") %>% na.omit() %>% nrow() == 2) {
models[[outcome]] = glmer(as.formula(paste(outcome, " ~ menstruation + included * fertile + fertile_mean + (1|person)")), data = diary, family = 'binomial')
} else {
models[[outcome]] = lmer(as.formula(paste(outcome, " ~ menstruation + included * fertile + fertile_mean + (1|person)")), data = diary)
}
Model summary
Basic model
models[[outcome]] %>%
print_summary() %>%
plot_all_effects()
## Error in eval(expr, envir, enclos): could not find function "%>%"
Add random effect for fertile
models[[outcome]] %>%
add_ind_diff()
## Error in eval(expr, envir, enclos): could not find function "%>%"
Diagnostics
models[[outcome]] %>%
plot_outcome() %>%
print_diagnostics()
## Error in eval(expr, envir, enclos): could not find function "%>%"
Curve
Backward-counted, cycle length 21-36
models[[outcome]] %>%
plot_curve(diary %>% filter(minimum_cycle_length_diary <= 36, minimum_cycle_length_diary > 20) %>% mutate(fertile=prc_stirn_b))
## Error in eval(expr, envir, enclos): could not find function "%>%"
Forward-counted, cycle length 21-36
models[[outcome]] %>%
plot_curve(diary %>% filter(minimum_cycle_length_diary <= 36, minimum_cycle_length_diary > 20) %>% mutate(RCD = FCD, fertile = prc_stirn_b_forward_counted), caption_x = "Days since last menstruation")
## Error in eval(expr, envir, enclos): could not find function "%>%"
Backward-counted, cycle length 27-29
models[[outcome]] %>%
plot_curve(diary %>% filter(minimum_cycle_length_diary <= 29, minimum_cycle_length_diary >= 27) %>% mutate(fertile=prc_stirn_b))
## Error in eval(expr, envir, enclos): could not find function "%>%"
Forward-counted, cycle length 21-36
models[[outcome]] %>%
plot_curve(diary %>% filter(minimum_cycle_length_diary <= 29, minimum_cycle_length_diary >= 27) %>% mutate(RCD = FCD, fertile = prc_stirn_b_forward_counted), caption_x = "Days since last menstruation")
## Error in eval(expr, envir, enclos): could not find function "%>%"
Robustness checks
models[[outcome]] %>%
robustness_check_ovu_shift(diary)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Moderation by participant age
models[[outcome]] %>%
test_moderator("age_group", diary, xlevels = 6)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Moderation by weekend
models[[outcome]] %>%
test_moderator("weekend", diary, xlevels = 2)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Moderation by weekday
models[[outcome]] %>%
test_moderator("weekday", diary, xlevels = 7)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Moderation by exclusion threshold
models[[outcome]] %>%
test_moderator("included_levels", diary, xlevels = 4)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Moderation by cycle length
models[[outcome]] %>%
test_moderator("cycle_length_groups", diary, xlevels = 4)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Moderation by certainty about menstruation parameters
models[[outcome]] %>%
test_moderator("certainty_menstruation", diary)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Moderation by cycle regularity
models[[outcome]] %>%
test_moderator("cycle_regularity", diary)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Moderation by cohabitation status
models[[outcome]] %>%
test_moderator("cohabitation", diary)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Moderation by relationship status
models[[outcome]] %>%
test_moderator("relationship_status_clean", diary)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Moderators
Relative attractiveness to self
models[[outcome]] %>%
test_moderator("partner_attractiveness_rel_to_self", diary)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Partner’s shortterm attractiveness
models[[outcome]] %>%
test_moderator("partner_attractiveness_shortterm", diary)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Partner’s longterm attractiveness
models[[outcome]] %>%
test_moderator("partner_attractiveness_longterm", diary)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Partner’s global attractiveness
models[[outcome]] %>%
test_moderator("partner_attractiveness_global", diary)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Relationship satisfaction
models[[outcome]] %>%
test_moderator("ZIP", diary)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Partner’s physical attractiveness
models[[outcome]] %>%
test_moderator("partner_attractiveness_physical", diary)
## Error in eval(expr, envir, enclos): could not find function "%>%"
Partner’s job and income
models[[outcome]] %>%
test_moderator("partner_attractiveness_money", diary)
## Error in eval(expr, envir, enclos): could not find function "%>%"


ROBAXIN - methocarbamol tablet, film coated
STAT RX USA LLC
robaxin®/robaxin®-750 (methocarbamol tablets, USP), a carbamate derivative of guaifenesin, is a central nervous system (CNS) depressant with sedative and musculoskeletal relaxant properties.
The chemical name of methocarbamol is 3-(2-methoxyphenoxy)-1,2-propanediol 1-carbamate and has the empirical formula C11H15NO5. Its molecular weight is 241.24. The structural formula is shown below.
Methocarbamol is a white powder, sparingly soluble in water and chloroform, soluble in alcohol (only with heating) and propylene glycol, and insoluble in benzene and n-hexane.
robaxin® is available as a light orange, round, film-coated tablet containing 500 mg of methocarbamol, USP for oral administration. The inactive ingredients present are corn starch, FD and C Yellow 6, hydroxypropyl cellulose, hypromellose, magnesium stearate, polysorbate 20, povidone, propylene glycol, saccharin sodium, sodium lauryl sulfate, sodium starch glycolate, stearic acid, titanium dioxide.
robaxin®-750 is available as an orange capsule-shaped, film-coated tablet containing 750 mg of methocarbamol, USP for oral administration. In addition to the inactive ingredients present in robaxin®, robaxin®-750 also contains D and C Yellow 10.
The mechanism of action of methocarbamol in humans has not been established, but may be due to general central nervous system (CNS) depression. It has no direct action on the contractile mechanism of striated muscle, the motor end plate or the nerve fiber.
In healthy volunteers, the plasma clearance of methocarbamol
ranges between 0.20 and
0.80 L/h/kg, the mean plasma elimination half-life
ranges between 1 and 2 hours, and the plasma protein binding ranges between 46%
and 50%.
Methocarbamol is metabolized via dealkylation and hydroxylation. Conjugation of methocarbamol also is likely. Essentially all methocarbamol metabolites are eliminated in the urine. Small amounts of unchanged methocarbamol also are excreted in the urine.
The mean (± SD) elimination half-life of methocarbamol in elderly
healthy volunteers (mean
(± SD) age, 69 (± 4) years) was slightly prolonged
compared to a younger (mean (± SD) age,
53.3 (± 8.8) years), healthy
population (1.5 (± 0.4) hours versus 1.1 (±0.27) hours, respectively). The
fraction of bound methocarbamol was slightly decreased in the elderly versus
younger volunteers (41 to 43% versus 46 to 50%, respectively).
The clearance of methocarbamol in 8 renally-impaired patients on maintenance hemodialysis was reduced about 40% compared to 17 normal subjects, although the mean (± SD) elimination half-life in these two groups was similar: 1.2 (± 0.6) versus 1.1 (±0.3) hours, respectively.
In 8 patients with cirrhosis secondary to alcohol abuse, the mean
total clearance of methocarbamol was reduced approximately 70% compared to that
obtained in 8 age- and
weight-matched normal subjects. The mean (± SD)
elimination half-life in the cirrhotic patients and the normal subjects was 3.38
(± 1.62) hours and 1.11 (± 0.27) hours, respectively. The percent of
methocarbamol bound to plasma proteins was decreased to approximately 40 to 45%
compared to 46 to 50% in the normal subjects.
robaxin® and robaxin®-750 are indicated as an adjunct to rest, physical therapy, and other measures for the relief of discomfort associated with acute, painful musculoskeletal conditions. The mode of action of methocarbamol has not been clearly identified, but may be related to its sedative properties. Methocarbamol does not directly relax tense skeletal muscles in man.
robaxin® and robaxin®-750 are contraindicated in patients hypersensitive to methocarbamol or to any of the tablet components.
Since methocarbamol may possess a general CNS depressant effect, patients receiving robaxin® or robaxin®-750 should be cautioned about combined effects with alcohol and other CNS depressants.
Safe use of robaxin® and robaxin®-750 has not been established with regard to possible adverse effects upon fetal development. There have been reports of fetal and congenital abnormalities following in utero exposure to methocarbamol. Therefore, robaxin® and robaxin®-750 should not be used in women who are or may become pregnant and particularly during early pregnancy unless in the judgment of the physician the potential benefits outweigh the possible hazards (see PRECAUTIONS, Pregnancy).
Methocarbamol may impair mental and/or physical abilities required for performance of hazardous tasks, such as operating machinery or driving a motor vehicle. Patients should be cautioned about operating machinery, including automobiles, until they are reasonably certain that methocarbamol therapy does not adversely affect their ability to engage in such activities.
Patients should be cautioned that methocarbamol may cause drowsiness or dizziness, which may impair their ability to operate motor vehicles or machinery.
Because methocarbamol may possess a general CNS-depressant effect, patients should be cautioned about combined effects with alcohol and other CNS depressants.
See WARNINGS and PRECAUTIONS for interaction with CNS drugs and alcohol.
Methocarbamol may inhibit the effect of pyridostigmine bromide. Therefore, methocarbamol should be used with caution in patients with myasthenia gravis receiving anticholinesterase agents.
Methocarbamol may cause a color interference in certain screening
tests for
5-hydroxyindoleacetic acid (5-HIAA) using nitrosonaphthol reagent
and in screening tests for urinary vanillylmandelic acid (VMA) using the Gitlow
method.
Long-term studies to evaluate the carcinogenic potential of methocarbamol have not been performed. No studies have been conducted to assess the effect of methocarbamol on mutagenesis or its potential to impair fertility.
Animal reproduction studies have not been conducted with methocarbamol. It is also not known whether methocarbamol can cause fetal harm when administered to a pregnant woman or can affect reproduction capacity. robaxin® and robaxin®-750 should be given to a pregnant woman only if clearly needed.
Safe use of robaxin® and robaxin®-750 has not been established with regard to possible adverse effects upon fetal development. There have been reports of fetal and congenital abnormalities following in utero exposure to methocarbamol. Therefore, robaxin® and robaxin®-750 should not be used in women who are or may become pregnant and particularly during early pregnancy unless in the judgment of the physician the potential benefits outweigh the possible hazards (see WARNINGS).
Methocarbamol and/or its metabolites are excreted in the milk of dogs; however, it is not known whether methocarbamol or its metabolites are excreted in human milk. Because many drugs are excreted in human milk, caution should be exercised when robaxin® or robaxin®-750 is administered to a nursing woman.
Safety and effectiveness of robaxin® and robaxin®-750 in pediatric patients below the age of 16 have not been established.
Adverse reactions reported coincident with the administration of methocarbamol include:
Body as a whole: Anaphylactic reaction, angioneurotic edema, fever, headache
Cardiovascular system: Bradycardia, flushing, hypotension, syncope, thrombophlebitis
Digestive system: Dyspepsia, jaundice (including cholestatic jaundice), nausea and vomiting
Hemic and lymphatic system: Leukopenia
Immune system: Hypersensitivity reactions
Nervous system: Amnesia, confusion, diplopia, dizziness or lightheadedness, drowsiness, insomnia, mild muscular incoordination, nystagmus, sedation, seizures (including grand mal), vertigo
Skin and special senses: Blurred vision, conjunctivitis, nasal congestion, metallic taste, pruritus, rash, urticaria
Limited information is available on the acute toxicity of methocarbamol. Overdose of methocarbamol is frequently in conjunction with alcohol or other CNS depressants and includes the following symptoms: nausea, drowsiness, blurred vision, hypotension, seizures, and coma.
In post-marketing experience, deaths have been reported with an overdose of methocarbamol alone or in the presence of other CNS depressants, alcohol or psychotropic drugs.
Management of overdose includes symptomatic and supportive treatment. Supportive measures include maintenance of an adequate airway, monitoring urinary output and vital signs, and administration of intravenous fluids if necessary. The usefulness of hemodialysis in managing overdose is unknown.
robaxin® (methocarbamol), 500 mg –
Adults:
Initial dosage: 3 tablets q.i.d.
Maintenance dosage: 2 tablets
q.i.d.
robaxin®-750 (methocarbamol): 750 mg –
Adults:
Initial dosage: 2 tablets q.i.d.
Maintenance dosage: 1 tablet
q.4h. or 2 tablets t.i.d.
Six grams a day are recommended for the first 48 to 72 hours of treatment. (For severe conditions 8 grams a day may be administered). Thereafter, the dosage can usually be reduced to approximately 4 grams a day.
robaxin® (methocarbamol tablets,
USP)
500 mg tablets are light orange, round, film-coated tablets engraved
with ROBAXIN 500 on the unscored side and SP above the score on the other side.
They are supplied as follows:
| Bottles of 100 | NDC 0091-7429-63 |
robaxin®-750 (methocarbamol tablets, USP)
750 mg
tablets are orange, capsule-shaped, film-coated tablets engraved with ROBAXIN
750 on one side and SP on the other. They are supplied as follows:
| Bottles of 100 | NDC 0091-7449-63 |
| Bottles of 500 | NDC 0091-7449-70 |
Manufactured for:
SCHWARZ PHARMA, LLC
a subsidiary of
UCB, Inc.
Smyrna, GA 30080
Printed in USA
Rev. 1E 09/2009
|
ROBAXIN
methocarbamol tablet, film coated | ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
|
| Labeler - STAT RX USA LLC (786036330) |
| Establishment | |||
| Name | Address | ID/FEI | Business Operations |
|---|---|---|---|
| STAT RX USA LLC | 786036330 | relabel, repack |


ALLISON POON
WORK
ABOUT
CONTACT
"How to" book
Texting? is a section of a collaborative book made by students of the same class. This book make an attempt to explain the things we don't understand.


| Path: | README |
| Last Update: | Sun Mar 23 11:37:45 +0000 2008 |
Aquarium is a toolkit for Aspect-Oriented Programming (AOP) whose goals include:
Ruby‘s metaprogramming facilities already provide some of the capabilities for which static-language AOP toolkits like AspectJ are typically used. With Ruby, you can easily add new methods and attributes to existing classes and objects. You can alias and redefine existing methods, which provides the method interception and "wrapping" needed to extend or modify existing behavior.
However, what is missing in Ruby is an expressive language for describing systemic modifications, a so-called "pointcut language". If you have simple needs for method interception and wrapping, then Aquarium will be overkill. However, if you have system-wide concerns that cross the boundaries of many objects, then an AOP tookit like Aquarium can help you implement these concerns in a more modular way.
So, if you are designing with aspects, wouldn‘t you like to write your code using the same "language"? Without AOP support, you have to map your aspect designs to metaprogramming idioms, which will often be slower to implement and harder to maintain. Imagine writing objects without native support for OOP!
Several terms are used in the AOP community.
Only around advice can prevent execution of the join point, except for the special case where before advice raises an exception.
There are several other AOP toolkits for Ruby that precede Aquarium. The most notable are AspectR and the aspect capabilities in the Facets toolkit. There are also Ruby 2.0 proposals to add method wrappers for "before", "after" and "wrap" behavior.
The goal of Aquarium is to provide a superset of the functionality provided by these other toolkits. Aquarium is suitable for non-trivial and large-scale aspect-oriented components in systems. Aquarium will be most valuable for systems where aspects might be added and removed dynamically at runtime and systems where nontrivial pointcut descriptions are needed, requiring a full-featured pointcut language (as discussed above…). For less demanding needs, the alternatives are lighter weight and hence may be more appropriate.
Many of AspectJ‘s features are not currently supported by Aquarium, but some of them are planned for future releases.
However, Aquarium does have a few advantages over AspectJ, especially when advising Java types when running in JRuby.
Note: at the time of this writing (V0.4.0 release), there is an important limitation of Aquarium when used with java code; it appears that advice is only invoked if an advised method is called directly from Ruby code. If the advised method is called by other Java code, the advice is not invoked. Whether or not this limitation can be removed is under investigation.
Also, as of V0.4.0, the interaction behavior of Aquarium and AspectJ or Spring aspects has not been investigated.
Several complete examples are provided in the "examples" directory.
In most cases, you can either declare the appropriate classes or use the optional DSL, which adds convenience methods to classes, objects, or even Object itself. The API also supports many synonyms for things like types, objects, and methods. The best place to see the full list of synonyms is the output of "pointcut_spec.rb".
Here is an example that traces invocations of all public instance methods (included inherited ones) of the classes or modules Foo and Bar.
require 'aquarium' Aspect.new :around, :calls_to => :all_methods, :on_types => [Foo, Bar] do |join_point, object, *args| p "Entering: #{join_point.target_type.name}##{join_point.method_name} for object #{object}" result = join_point.proceed p "Leaving: #{join_point.target_type.name}##{join_point.method_name} for object #{object}" result # block needs to return the result of the "proceed"! end
The advice to execute at each join point is the block. The pointcut is the set of all public instance methods in Foo and Bar. (There are additional options available for specifying class methods, protected methods, excluding inherited (ancestor) methods, etc.) Here is the same example using the convenience DSL that adds aspect methods to Object (available only if you require aquarium/aspects/dsl/object_dsl’, since other toolkits, like Rails, define similar methods on Object!).
require 'aquarium/aspects/dsl/object_dsl' around :calls_to => :all_methods, :on_types => [Foo, Bar] do |join_point, object, *args| p "Entering: #{join_point.target_type.name}##{join_point.method_name} for object #{object}" result = join_point.proceed p "Leaving: #{join_point.target_type.name}##{join_point.method_name} for object #{object}" result # block needs to return the result of the "proceed"! end
See "examples/method_tracing_example.rb" for a more detailed version of this example.
If you don‘t want to add these methods to Object, you can also add them individually to modules, classes, or objects:
require 'aquarium/aspects/dsl/aspect_dsl' # NOT object_dsl ... module MyModule include Aquarium::Aspects::DSL::AspectDSL end class MyClass include Aquarium::Aspects::DSL::AspectDSL end my_object = MyOtherClass.new my_object.extend (Aquarium::Aspects::DSL::AspectDSL)
If you use the DSL inside a class and omit the :type(s) and :object(s) options, "self" is assumed.
class Foo include Aquarium::Aspects::DSL::AspectDSL ... def critical_operation *args ... end end ... class Foo around :critical_operation do |join_point, object, *args| p "Entering: Foo#critical_operation" result = join_point.proceed p "Leaving: Foo#critical_operation" result end end
It is important to note that aspect "instances" usually behave like class (static) variables, in terms of the lifetime of their effects. In the example shown, class Foo is permanently modified to do the print statements shown for all "critical methods", unless you save the result of calling "around" to a variable, e.g., critical_operation_logging, and you explicitly call "critical_operation_logging.unadvise" at some future time. Put another way, the effects scope just like changes made when you reopen a class or module.
A common mistake is to create an aspect in an initialize method and assign it to an attribute. This usually means that you are creating long-lived, redundant aspects every time an instance of your class is created. The aspect modifications remain in effect even when the instances themselves are garbage collected!
Here are some more succinct examples, illustrating the API (using the DSL methods) and some of the various synonyms for methods, types, etc.
You can pass in pointcuts defined elsewhere:
my_pointcut = Pointcut.new :invocations_of => /^do_/, :within_types => /Foo::Bar::/ around :pointcuts => my_pointcut do |jp, obj, *args| ... # Pass in a pointcut around :pointcuts => [my_pointcut, ...] do |jp, obj, *args| ... # Pass in a pointcut array
As a convenience, since a JoinPoint is like a Pointcut with one element, you can pass a JoinPoint object where Pointcut objects are expected:
my_join_point1 = JoinPoint.new :type => Foo::Bar, :method => do_this my_join_point2 = JoinPoint.new :type => Foo::Bar, :method => do_that around :pointcuts => my_join_point1 do |jp, obj, *args| … around :pointcuts => [my_join_point1, my_join_point2, …] do |jp, obj, *args| …
You can specify a single type, a type name, a type regular expression, or an array of the same. Note that :type and :types are synonymous. Use the singular form for better readability when you are specifying just one type. Other synonyms include :on_types, :within_types, and :in_types, plus the singular forms.
around :type = A, ... around :type = "A", ... around :types => [A, B, ...], ... around :types => %w[A, B, ...], ... around :types => /A::.*Helper$/, ... around :types => [/A::.*Helper$/, /B::Foo.*/], ...
Everywhere "type" is used, you can substitute "class", "classes", "module", or "modules". Note that they are treated as synonyms; there is currently no enforcement that the values passed with ":class", for example, are actually classes, not modules.
Using the plural versions of the synonyms with method specifications sometimes read better:
around :calls_to => :all_methods, :on_types => [A, B, ...], ... around :calls_to => :all_methods, :in_types => [A, B, ...], ... around :calls_to => :all_methods, :within_types => [A, B, ...], ...
You can specify types and their descendents (subclasses or included modules) or ancestors. The same synonym prefixes for :types and :type also apply.
around :type_and_ancestors = A, ... around :types_and_ancestors = A, ... around :type_and_descendents = A, ... around :types_and_descendents = A, ... around :classes_and_descendents = A, ... around :modules_and_descendents = A, ...
Some of the synonyms:
around :calls_to => :all_methods, :on_types_and_ancestors = A, ... around :calls_to => :all_methods, :in_types_and_ancestors = A, ... around :calls_to => :all_methods, :within_types_and_ancestors = A, ... and similarly for descendents
You can specify a single object or an array of objects. As for :types, you can use :object, :objects, :on_objects, :within_object, :in_objects, and the singular forms synonymously.
a1 = A.new a2 = A.new around :object = a1, ... around :objects => [a1, a2], ...
Some of the synonyms:
around :calls_to => :all_methods, :on_objects = [a1, a2], ... around :calls_to => :all_methods, :in_objects = [a1, a2], ... around :calls_to => :all_methods, :within_objects = [a1, a2], ...
If no types or objects are specified, the object defaults to "self". However, this default is only supported when using the DSL to create an aspect, e.g.,
class MyClass include Aquarium::Aspects::DSL::AspectDSL def doit; ...; end around :method => doit, ... # Implicit :object => self, i.e., MyClass end
You can specify a single method symbol (name), a regular expression, or an array of the same. The synonyms for :methods include :method, :calls_to, :invoking, :invocations_of, and :sending_messages_to. The special keywords :all and :all_methods mean match all methods, subject to the :method_options discussed next.
around :method = :all_methods, ... around :method = :foo, ... around :methods = [:foo, :bar, :baz], ... around :methods = /^foo/, ... around :methods = [/^foo/, /bar$/], ...
Using the synonyms:
around :calls_to = :all_methods, ... after :invoking = :all_methods, ... after :invocations_of = :all_methods, ... after :sending_messages_to = :all_methods, ... after :within_methods = :all_methods, ...
You can specify method options. By default, public instance methods only are matched. Note that :methods => :all or :all_methods with no method options matches all public instance methods, including ancestor (inherited and included module) methods. For all the method options (except for :exclude_ancestor_methods), you can append the suffix "_methods". You can also use the :restrict_methods_to synonym for :method_options.
around :methods = /foo/, :method_options => [:instance], ... # match instance methods (default) around :methods = /foo/, :method_options => [:class], ... # match class methods around :methods = /foo/, :method_options => [:public, :protected, :private], ... # match public, protected, and private instance methods around :methods = /foo/, :method_options => [:singleton], ... # match singleton methods around :methods = /foo/, :method_options => [:exclude_ancestor_methods], ... # ignore methods defined in ancestors, inherited classes and included modules
With synonyms:
around :calls_to = /foo/, :restricting_methods_to => [:singleton_methods], ...
You can specify attributes, which are actually convenience methods for the attribute accessors. They work very much like the :method options. Note that :all is NOT supported in this case. The available synonyms are slightly more complicated, as shown in these examples.
around :attribute = :foo, ... # defaults to methods #foo and #foo= around :attributes = :foo, ... # the same around :accessing = :foo, ... # the same around :attribute = :foo, :attribute_options => [:readers]... # only matches #foo around :reading = :foo # the same around :attribute = :foo, :attribute_options => [:writers]... # only matches #foo= around :writing = :foo # the same around :attributes = [:foo, :bar, :baz], ... around :attributes = /^foo/, ... around :attributes = [/^foo/, /bar$/], ...
You can specify a "Pointcut" that encapsulates one or more pre-defined Pointcuts or JoinPoints.
around :pointcut = pc, ... # for pre-defined pointcut "pc" around :pointcuts = [pc, ...], ... # for pre-defined pointcut list around :pointcut = jp, ... # for pre-defined join point "jp" around :pointcuts = [jp, ...], ... # for pre-defined join point list around :pointcut = {:type => T, :method => :m}, ... # same as around :type => T, :method => :m, ..
Using the plural versions of the synonyms, with method specifications so they read better:
around :on_pointcuts => [pc1, pc2, ...], ... around :in_pointcuts => [pc1, pc2, ...], ... around :within_pointcuts => [pc1, pc2, ...], ...
You can specifically exclude particular pointcuts, join points, types, objects, methods, or attributes. This is useful when you specify a list or regular expression of "items" to match and you want to exclude some of the items. Note that there is an open bug (15202) that appears to affect advising types, unadvising the types, then advising objects of the same types. (This is not likely to happen a lot in real applications, but it shows up when running Aquarium‘s specs.)
around ..., :exclude_pointcut = pc, ... around ..., :exclude_pointcuts = [pc, ...] around ..., :exclude_join_point = jp, ... around ..., :exclude_join_points = [jp, ...] around ..., :exclude_type = t, ... around ..., :exclude_types = [t, ...] around ..., :exclude_type_and_ancestors = t, ... around ..., :exclude_types_and_ancestors = [t, ...] around ..., :exclude_type_and_descendents = t, ... around ..., :exclude_types_and_descendents = [t, ...] around ..., :exclude_object = o, ... around ..., :exclude_objects = [o, ...] around ..., :exclude_method = m, ... around ..., :exclude_methods = [m, ...] around ..., :exclude_attribute = a, ... around ..., :exclude_attributes = [a, ...]
All the same synonyms for :types, :objects, and :methods apply here as well (after the "exclude_" prefix).
You can advice methods before execution:
before :types => ...
You can advice methods after returning successfully (i.e., no exceptions were raised):
after_returning :types => ... after_returning_from :types => ... # synonym
You can advice methods after raising exceptions:
after_raising :types => ... # After any exception is thrown after_raising_within :types => ... # synonym after_raising => MyError, :types => ... # Only invoke advice if "MyError" is raised. after_raising => [MyError1, MyError2], :types => ... # Only invoke advice if "MyError1" or "MyError2" is raised.
You can advice methods after returning successfully or raising exceptions. (You can‘t specify a set of exceptions in this case.):
after :types => ... after_raising_within_or_returning_from : types => # synonym
You can advice methods both before after. This is different from around advice, where the around advice has to explicitly invoke the join point (using JoinPoint#proceed). Instead, the before-and-after methods are convenience wrappers around the creation of separate before advice and the corresponding after advice.
before_and_after :types =>, ... before_and_after_returning :types =>, ... before_and_after_returning_from :types =>, ... # synonym before_and_after_raising :types =>, ... before_and_after_raising_within :types =>, ... # synonym before_and_after_raising_within_or_returning_from :types =>, ... # synonym
If you pass a block to Aspect.new, it will be the advice. When invoked, the advice will be passed the following three arguments,
1) the JoinPoint, which will contain a JoinPoint::Context object with useful context information, 2) the object being sent the current message, and 3) the parameters passed with the original message.
Recall that a Proc doesn‘t check the number of arguments (while lambdas do), so if you don‘t care about any of the trailing parameters, you can leave them out of the parameter list. Recall that the other difference between the two is that a return statement in a Proc returns from the method that contains it. As rule, do NOT use return statements in advices!
around :type => [...], :methods => :all do |join_point, object, *args| advice_to_execute_before_the_jp result = join_point.proceed # Invoke the join point, passing *args implicitly (you can override...) advice_to_execute_after_the_jp result # return the result of the "proceed", unless you override the value. end around(:type => [...], :methods => :all) {|join_point, object, *args| ...} # (...) necessary for precedence...
In the example, we show that you must be careful to return the correct value, usually the value returned by "proceed" or a value created by the block itself.
Note, prior to V0.2.0, the advice argument list was |join_point, *args|. Aquarium will look for such obsolete signatures (by looking at the arity of the proc) and raise an exception, if found. This check will be removed in a future release.
Rather than passing a block as the advice, you can pass a previously-created Proc:
around :type => [...], :methods => :all, :advice => advice around :type => [...], :methods => :all, :advise_with => advice # synonym for advice. Note the "s"! around :type => [...], :methods => :all, :call => advice # synonym for advice. around :type => [...], :methods => :all, :invoke => advice # synonym for advice.
Finally, when running in JRuby, you can advise Java types! See the examples in the separate RSpec suite in the "jruby" directory.
Aquarium::Aspects contains the Aspect class and supporting classes Pointcut, JoinPoint, etc.
Aquarium::Finders provides tools for locating types, objects, and methods in the runtime, using names, symbols, or regular expressions.
Aquarium::Extensions provides extensions to several Ruby core library routines.
Aquarium::Utils provides general-purpose utilities for manipulating Strings, Sets, Hashes, etc. as well as some generic types.
Aquarium::Extras provides add-ons for Aquarium, such as a Design by Contract implementation. These extras are NOT included when you require the general ‘aquarium.rb’ file. You have to explicitly include ‘aquarium/extras’ or one of the ‘aquarium/extras/*’ if you want to use them.
The simplest approach is to install the gem:
gem install -y aquarium # sudo may be required on non-Windows systems
If you prefer to build the gem locally, check out source from svn://rubyforge.org/var/svn/aquarium/trunk. Then do the following:
rake gem gem install pkg/aquarium-x.y.z.gem # sudo may be required
In order to run Aquarium‘s full suite of specs (rake pre_commit) you must install the following gems and tools:
Once those are all installed, you should be able to run the suite with the following steps:
or
Note that Aquarium itself - once built - doesn‘t have any dependencies outside the Ruby core and stdlib.
If you want to run the tests for the JRuby support, you must also have JRuby 1.1RC2 or later installed. To run the specs for JRuby, use the command
This command runs the standard Aquarium specs using JRuby instead of MRI, then runs a separate set of specs in the "jruby/spec" directory which test Aquarium with Java classes inside JRuby.
See aquarium.rubyforge.org for further documentation.
My colleagues in the AOSD community, in particular those who developed AspectJ, have been a big inspiration. The RSpec team, in particular David Chelimsky, have really inspired my thinking about what‘s possible in Ruby, especially in the realm of DSLs. I also cribbed parts of the RSpec Rake process ;) My colleagues at Object Mentor are an endless source of insight and inspiration.


Spectre of coalition still hangs over Lib Dems nine years on
The agreement nine years ago could prove to be the party’s downfall in this year’s General Election.
The Liberal Democrats started this election campaign with high hopes and optimism.
They insisted their party was fighting for a majority to revoke Article 50, claim the £50 billion “Remain bonus” and put Jo Swinson into Downing Street.
But an agreement made nine years ago between two long-departed leaders could be their undoing.
Mr Sutherland said Glasgow had been hit hardest by austerity wrought by the Conservatives and their Lib Dem partners, branding the coalition “unforgivable”.
He told her the impact of austerity on Glasgow “breaks my heart”.
The Lib Dem leader has been castigated several times during the campaign – in a youth centre, on the street and even by BBC interviewer Andrew Neil about her personal involvement in the 2010-2015 pact.
He told the PA news agency “lessons had been learned” from the five years spent in Government, adding: “There were some things we did right and some things we did wrong.”
The coalition pressure refused to let up as Rennie took to the stage for an STV debate between the Scottish party leaders.
First Minister Nicola Sturgeon told Mr Rennie he should be “ashamed” of his party and “apologise” to the people of Scotland for the effect of austerity and Liberal Democrat complicity.
As the election dragged on, the poll numbers for his party dropped, with voters moving to the Labour Party as the spectre of coalition lingered.
According to a survey by YouGov for the Times and analysed by polling expert John Curtice on December 6, the Lib Dems are expected to remain on four seats after December 12.
As the poll numbers stagnated, the previously stark and forthright message of the Lib Dems became muddied, despite insistence to the contrary.
While “Stop Brexit” initially meant the unilateral revocation of a Article 50, the position was softened to a continuation of the campaign for a People’s Vote.
The insistence Jo Swinson could be Prime Minister, which would involve a swing of more than 300 seats towards her party, was pared back.
Ms Swinson identified Mr Blackford’s Ross, Skye and Lochaber seat as a potential victory for the party when speaking to journalists, as well as North East Fife, an SNP marginal where the Lib Dems were just two votes behind Stephen Gethins in 2017.
Despite a surge in the European Parliament elections earlier this year bringing optimism flooding into the party, as it had in 2010, this election could prove to be a momentum buster if the polls are proved to be correct.