Decisions

class authorityspoke.decisions.Decision(name, date, name_abbreviation=None, citations=None, first_page=None, last_page=None, court=None, opinions=<factory>, jurisdiction=None, cites_to=None, _id=None)

A court decision to resolve a step in litigation.

Uses the model of a judicial decision from the Caselaw Access Project API. One of these records may contain multiple Opinions.

Typically one record will contain all the Opinions from one appeal, but not necessarily from the whole lawsuit. One lawsuit may contain multiple appeals or other petitions, and if more then one of those generates published Opinions, the CAP API will divide those Opinions into a separate record for each appeal.

The outcome of a decision may be determined by one majority Opinion or by the combined effect of multiple Opinions. The lead opinion is commonly, but not always, the only Opinion that creates binding legal authority. Usually every Rule posited by the lead Opinion is binding, but some may not be, often because parts of the Opinion fail to command a majority of the panel of judges.

Parameters
  • name (str) – full name of the opinion, e.g. “ORACLE AMERICA, INC., Plaintiff-Appellant, v. GOOGLE INC., Defendant-Cross-Appellant”

  • name_abbreviation (Optional[str]) – shorter name of the opinion, e.g. “Oracle America, Inc. v. Google Inc.”

  • citations (Optional[Sequence[CaseCitation]]) – citations to the opinion, usually in the format [Volume Number] [Reporter Name Abbreviation] [Page Number]

  • first_page (Optional[int]) – the page where the opinion begins in its official reporter

  • last_page (Optional[int]) – the page where the opinion ends in its official reporter

  • decision_date – date when the opinion was first published by the court (not the publication date of the reporter volume)

  • court (Optional[str]) – name of the court that published the opinion

  • _id (Optional[int]) – unique ID from CAP API

__str__()

Return str(self).

contradicts(other)

Test whether self implies the absence of other.

Returns

True if self and other can’t both be true at the same time. Otherwise returns False.

explain_contradiction(other, context=None)

Get one explanation of why self and other contradict.

Return type

Optional[Explanation]

explanations_contradiction(other, context=None)

Test whether self implies() the absence of other.

This should only be called after confirming that other is not None.

Return type

Iterator[Explanation]

Returns

True if self and other can’t both be true at the same time. Otherwise returns False.

explain_implication(other, context=None)

Get one explanation of why self implies other.

Return type

Optional[Explanation]

explanations_implication(other, context=None)

Generate ContextRegisters that cause self to imply other.

If self is absent, then generate a ContextRegister from other’s point of view and then swap the keys and values.

Return type

Iterator[Explanation]

posit(holdings, holding_anchors=None, named_anchors=None, context=None)

Add one or more Holdings to the majority Opinion of this Decision.

Return type

None

__ge__(other)

Call implies() as an alias.

Return type

bool

Returns

bool indicating whether self implies other

__gt__(other)

Test whether self implies other and self != other.

Return type

bool

implied_by(other, context=None)

Test whether other implies self.

Return type

bool

implies(other, context=None)

Test whether self implies other.

Return type

bool