Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(281)

Unified Diff: tools/telemetry/third_party/gsutil/third_party/pyasn1/doc/constraints.html

Issue 1260493004: Revert "Add gsutil 4.13 to telemetry/third_party" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/third_party/gsutil/third_party/pyasn1/doc/constraints.html
diff --git a/tools/telemetry/third_party/gsutil/third_party/pyasn1/doc/constraints.html b/tools/telemetry/third_party/gsutil/third_party/pyasn1/doc/constraints.html
deleted file mode 100644
index 53da1addffe06fb19b78d40b8e3aa2929373d8bc..0000000000000000000000000000000000000000
--- a/tools/telemetry/third_party/gsutil/third_party/pyasn1/doc/constraints.html
+++ /dev/null
@@ -1,436 +0,0 @@
-<html>
-<title>
-PyASN1 subtype constraints
-</title>
-<head>
-</head>
-<body>
-<center>
-<table width=60%>
-<tr>
-<td>
-
-<h4>
-1.4 PyASN1 subtype constraints
-</h4>
-
-<p>
-Most ASN.1 types can correspond to an infinite set of values. To adapt to
-particular application's data model and needs, ASN.1 provides a mechanism
-for limiting the infinite set to values, that make sense in particular case.
-</p>
-
-<p>
-Imposing value constraints on an ASN.1 type can also be seen as creating
-a subtype from its base type.
-</p>
-
-<p>
-In pyasn1, constraints take shape of immutable objects capable
-of evaluating given value against constraint-specific requirements.
-Constraint object is a property of pyasn1 type. Like TagSet property,
-associated with every pyasn1 type, constraints can never be modified
-in place. The only way to modify pyasn1 type constraint is to associate
-new constraint object to a new pyasn1 type object.
-</p>
-
-<p>
-A handful of different flavors of <i>constraints</i> are defined in ASN.1.
-We will discuss them one by one in the following chapters and also explain
-how to combine and apply them to types.
-</p>
-
-<a name="1.4.1"></a>
-<h4>
-1.4.1 Single value constraint
-</h4>
-
-<p>
-This kind of constraint allows for limiting type to a finite, specified set
-of values.
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
-DialButton ::= OCTET STRING (
- "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
-)
-</pre>
-</td></tr></table>
-
-<p>
-Its pyasn1 implementation would look like:
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
->>> from pyasn1.type import constraint
->>> c = constraint.SingleValueConstraint(
- '0','1','2','3','4','5','6','7','8','9'
-)
->>> c
-SingleValueConstraint(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
->>> c('0')
->>> c('A')
-Traceback (most recent call last):
-...
-pyasn1.type.error.ValueConstraintError:
- SingleValueConstraint(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) failed at: A
->>>
-</pre>
-</td></tr></table>
-
-<p>
-As can be seen in the snippet above, if a value violates the constraint, an
-exception will be thrown. A constrainted pyasn1 type object holds a
-reference to a constraint object (or their combination, as will be explained
-later) and calls it for value verification.
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
->>> from pyasn1.type import univ, constraint
->>> class DialButton(univ.OctetString):
-... subtypeSpec = constraint.SingleValueConstraint(
-... '0','1','2','3','4','5','6','7','8','9'
-... )
->>> DialButton('0')
-DialButton(b'0')
->>> DialButton('A')
-Traceback (most recent call last):
-...
-pyasn1.type.error.ValueConstraintError:
- SingleValueConstraint(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) failed at: A
->>>
-</pre>
-</td></tr></table>
-
-<p>
-Constrained pyasn1 value object can never hold a violating value.
-</p>
-
-<a name="1.4.2"></a>
-<h4>
-1.4.2 Value range constraint
-</h4>
-
-<p>
-A pair of values, compliant to a type to be constrained, denote low and upper
-bounds of allowed range of values of a type.
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
-Teenagers ::= INTEGER (13..19)
-</pre>
-</td></tr></table>
-
-<p>
-And in pyasn1 terms:
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
->>> from pyasn1.type import univ, constraint
->>> class Teenagers(univ.Integer):
-... subtypeSpec = constraint.ValueRangeConstraint(13, 19)
->>> Teenagers(14)
-Teenagers(14)
->>> Teenagers(20)
-Traceback (most recent call last):
-...
-pyasn1.type.error.ValueConstraintError:
- ValueRangeConstraint(13, 19) failed at: 20
->>>
-</pre>
-</td></tr></table>
-
-<p>
-Value range constraint usually applies numeric types.
-</p>
-
-<a name="1.4.3"></a>
-<h4>
-1.4.3 Size constraint
-</h4>
-
-<p>
-It is sometimes convenient to set or limit the allowed size of a data item
-to be sent from one application to another to manage bandwidth and memory
-consumption issues. Size constraint specifies the lower and upper bounds
-of the size of a valid value.
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
-TwoBits ::= BIT STRING (SIZE (2))
-</pre>
-</td></tr></table>
-
-<p>
-Express the same grammar in pyasn1:
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
->>> from pyasn1.type import univ, constraint
->>> class TwoBits(univ.BitString):
-... subtypeSpec = constraint.ValueSizeConstraint(2, 2)
->>> TwoBits((1,1))
-TwoBits("'11'B")
->>> TwoBits((1,1,0))
-Traceback (most recent call last):
-...
-pyasn1.type.error.ValueConstraintError:
- ValueSizeConstraint(2, 2) failed at: (1, 1, 0)
->>>
-</pre>
-</td></tr></table>
-
-<p>
-Size constraint can be applied to potentially massive values - bit or octet
-strings, SEQUENCE OF/SET OF values.
-</p>
-
-<a name="1.4.4"></a>
-<h4>
-1.4.4 Alphabet constraint
-</h4>
-
-<p>
-The permitted alphabet constraint is similar to Single value constraint
-but constraint applies to individual characters of a value.
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
-MorseCode ::= PrintableString (FROM ("."|"-"|" "))
-</pre>
-</td></tr></table>
-
-<p>
-And in pyasn1:
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
->>> from pyasn1.type import char, constraint
->>> class MorseCode(char.PrintableString):
-... subtypeSpec = constraint.PermittedAlphabetConstraint(".", "-", " ")
->>> MorseCode("...---...")
-MorseCode('...---...')
->>> MorseCode("?")
-Traceback (most recent call last):
-...
-pyasn1.type.error.ValueConstraintError:
- PermittedAlphabetConstraint(".", "-", " ") failed at: "?"
->>>
-</pre>
-</td></tr></table>
-
-<p>
-Current implementation does not handle ranges of characters in constraint
-(FROM "A".."Z" syntax), one has to list the whole set in a range.
-</p>
-
-<a name="1.4.5"></a>
-<h4>
-1.4.5 Constraint combinations
-</h4>
-
-<p>
-Up to this moment, we used a single constraint per ASN.1 type. The standard,
-however, allows for combining multiple individual constraints into
-intersections, unions and exclusions.
-</p>
-
-<p>
-In pyasn1 data model, all of these methods of constraint combinations are
-implemented as constraint-like objects holding individual constraint (or
-combination) objects. Like terminal constraint objects, combination objects
-are capable to perform value verification at its set of enclosed constraints
-according to the logic of particular combination.
-</p>
-
-<p>
-Constraints intersection verification succeeds only if a value is
-compliant to each constraint in a set. To begin with, the following
-specification will constitute a valid telephone number:
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
-PhoneNumber ::= NumericString (FROM ("0".."9")) (SIZE 11)
-</pre>
-</td></tr></table>
-
-<p>
-Constraint intersection object serves the logic above:
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
->>> from pyasn1.type import char, constraint
->>> class PhoneNumber(char.NumericString):
-... subtypeSpec = constraint.ConstraintsIntersection(
-... constraint.PermittedAlphabetConstraint('0','1','2','3','4','5','6','7','8','9'),
-... constraint.ValueSizeConstraint(11, 11)
-... )
->>> PhoneNumber('79039343212')
-PhoneNumber('79039343212')
->>> PhoneNumber('?9039343212')
-Traceback (most recent call last):
-...
-pyasn1.type.error.ValueConstraintError:
- ConstraintsIntersection(
- PermittedAlphabetConstraint('0','1','2','3','4','5','6','7','8','9'),
- ValueSizeConstraint(11, 11)) failed at:
- PermittedAlphabetConstraint('0','1','2','3','4','5','6','7','8','9') failed at: "?039343212"
->>> PhoneNumber('9343212')
-Traceback (most recent call last):
-...
-pyasn1.type.error.ValueConstraintError:
- ConstraintsIntersection(
- PermittedAlphabetConstraint('0','1','2','3','4','5','6','7','8','9'),
- ValueSizeConstraint(11, 11)) failed at:
- ValueSizeConstraint(10, 10) failed at: "9343212"
->>>
-</pre>
-</td></tr></table>
-
-<p>
-Union of constraints works by making sure that a value is compliant
-to any of the constraint in a set. For instance:
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
-CapitalOrSmall ::= IA5String (FROM ('A','B','C') | FROM ('a','b','c'))
-</pre>
-</td></tr></table>
-
-<p>
-It's important to note, that a value must fully comply to any single
-constraint in a set. In the specification above, a value of all small or
-all capital letters is compliant, but a mix of small&capitals is not.
-Here's its pyasn1 analogue:
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
->>> from pyasn1.type import char, constraint
->>> class CapitalOrSmall(char.IA5String):
-... subtypeSpec = constraint.ConstraintsUnion(
-... constraint.PermittedAlphabetConstraint('A','B','C'),
-... constraint.PermittedAlphabetConstraint('a','b','c')
-... )
->>> CapitalOrSmall('ABBA')
-CapitalOrSmall('ABBA')
->>> CapitalOrSmall('abba')
-CapitalOrSmall('abba')
->>> CapitalOrSmall('Abba')
-Traceback (most recent call last):
-...
-pyasn1.type.error.ValueConstraintError:
- ConstraintsUnion(PermittedAlphabetConstraint('A', 'B', 'C'),
- PermittedAlphabetConstraint('a', 'b', 'c')) failed at: failed for "Abba"
->>>
-</pre>
-</td></tr></table>
-
-<p>
-Finally, the exclusion constraint simply negates the logic of value
-verification at a constraint. In the following example, any integer value
-is allowed in a type but not zero.
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
-NoZero ::= INTEGER (ALL EXCEPT 0)
-</pre>
-</td></tr></table>
-
-<p>
-In pyasn1 the above definition would read:
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
->>> from pyasn1.type import univ, constraint
->>> class NoZero(univ.Integer):
-... subtypeSpec = constraint.ConstraintsExclusion(
-... constraint.SingleValueConstraint(0)
-... )
->>> NoZero(1)
-NoZero(1)
->>> NoZero(0)
-Traceback (most recent call last):
-...
-pyasn1.type.error.ValueConstraintError:
- ConstraintsExclusion(SingleValueConstraint(0)) failed at: 0
->>>
-</pre>
-</td></tr></table>
-
-<p>
-The depth of such a constraints tree, built with constraint combination objects
-at its nodes, has not explicit limit. Value verification is performed in a
-recursive manner till a definite solution is found.
-</p>
-
-<a name="1.5"></a>
-<h4>
-1.5 Types relationships
-</h4>
-
-<p>
-In the course of data processing in an application, it is sometimes
-convenient to figure out the type relationships between pyasn1 type or
-value objects. Formally, two things influence pyasn1 types relationship:
-<i>tag set</i> and <i>subtype constraints</i>. One pyasn1 type is considered
-to be a derivative of another if their TagSet and Constraint objects are
-a derivation of one another.
-</p>
-
-<p>
-The following example illustrates the concept (we use the same tagset but
-different constraints for simplicity):
-</p>
-
-<table bgcolor="lightgray" border=0 width=100%><TR><TD>
-<pre>
->>> from pyasn1.type import univ, constraint
->>> i1 = univ.Integer(subtypeSpec=constraint.ValueRangeConstraint(3,8))
->>> i2 = univ.Integer(subtypeSpec=constraint.ConstraintsIntersection(
-... constraint.ValueRangeConstraint(3,8),
-... constraint.ValueRangeConstraint(4,7)
-... ) )
->>> i1.isSameTypeWith(i2)
-False
->>> i1.isSuperTypeOf(i2)
-True
->>> i1.isSuperTypeOf(i1)
-True
->>> i2.isSuperTypeOf(i1)
-False
->>>
-</pre>
-</td></tr></table>
-
-<p>
-As can be seen in the above code snippet, there are two methods of any pyasn1
-type/value object that test types for their relationship:
-<b>isSameTypeWith</b>() and <b>isSuperTypeOf</b>(). The former is
-self-descriptive while the latter yields true if the argument appears
-to be a pyasn1 object which has tagset and constraints derived from those
-of the object being called.
-</p>
-
-<hr>
-
-</td>
-</tr>
-</table>
-</center>
-</body>
-</html>

Powered by Google App Engine
This is Rietveld 408576698