Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

phoebe

Package Overview
Dependencies
Maintainers
2
Versions
120
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

phoebe - npm Package Compare versions

Comparing version
2.4.18
to
2.4.19
client-server/phoebe-autofig

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

+674
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
{one line to give the program's name and a brief idea of what it does.}
Copyright (C) {year} {name of author}
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
{project} Copyright (C) {year} {fullname}
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
include README.md
include client-server/phoebe-server
include client-server/phoebe-autofig
include phoebe/lib/*.h
recursive-include phoebe/atmospheres/tables *
recursive-include phoebe/solverbackends *
recursive-include phoebe/frontend/default_bundles *
Metadata-Version: 2.4
Name: phoebe
Version: 2.4.19
Summary: PHOEBE: modeling and analysis of eclipsing binary stars
Author-email: Andrej Prša <aprsa@villanova.edu>, Kyle Conroy <kyle.conroy@villanova.edu>, Angela Kochoska <angela.kochoska@villanova.edu>, Martin Horvat <martin.horvat@fmf.uni-lj.si>, Dave Jones <djones@iac.es>, Michael Abdul-Masih <michael.abdul-masih@eso.org>, Bert Pablo <hpablo@aavso.org>, Joe Giammarco <giammarc@eastern.edu>
Maintainer-email: Kyle Conroy <kyle.conroy@villanova.edu>, Andrej Prša <aprsa@villanova.edu>
License: GPL-3.0-or-later
Project-URL: homepage, http://phoebe-project.org
Project-URL: repository, https://github.com/phoebe-project/phoebe2
Project-URL: documentation, http://phoebe-project.org/docs
Keywords: phoebe,science,astronomy,astrophysics,binary stars,eclipsing binary stars
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: C
Classifier: Programming Language :: C++
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: User Interfaces
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: astropy
Requires-Dist: pytest
Requires-Dist: tqdm
Requires-Dist: corner
Requires-Dist: requests
Requires-Dist: python-socketio
Requires-Dist: flask
Requires-Dist: flask-cors
Requires-Dist: flask-socketio
Requires-Dist: gevent
Requires-Dist: gevent-websocket
Dynamic: license-file
PHOEBE 2.4
------------------------
<p align="center"><a href="http://phoebe-project.org"><img src="./images/logo_blue.svg" alt="PHOEBE logo" width="160px" align="center"/></a></p>
<pre align="center" style="text-align:center; font-family:monospace; margin: 30px">
pip install phoebe
</pre>
<p align="center">
<a href="https://pypi.org/project/phoebe/"><img src="https://img.shields.io/badge/pip-phoebe-blue.svg"/></a>
<a href="http://phoebe-project.org/install"><img src="https://img.shields.io/badge/python-3.8+-blue.svg"/></a>
<a href="https://github.com/phoebe-project/phoebe2/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-GPL3-blue.svg"/></a>
<a href="https://github.com/phoebe-project/phoebe2/actions/workflows/on_pr.yml?query=branch%3Amaster"><img src="https://github.com/phoebe-project/phoebe2/actions/workflows/on_pr.yml/badge.svg?branch=master"/></a>
<a href="http://phoebe-project.org/docs/2.4"><img src="https://github.com/phoebe-project/phoebe2-docs/actions/workflows/build-docs.yml/badge.svg?branch=2.4"/></a>
<br/>
<a href="https://ui.adsabs.harvard.edu/abs/2016ApJS..227...29P"><img src="https://img.shields.io/badge/ApJS-Prsa+2016-lightgrey.svg"/></a>
<a href="https://ui.adsabs.harvard.edu/abs/2018ApJS..237...26H"><img src="https://img.shields.io/badge/ApJS-Horvat+2018-lightgrey.svg"/></a>
<a href="https://ui.adsabs.harvard.edu/abs/2020ApJS..247...63J"><img src="https://img.shields.io/badge/ApJS-Jones+2020-lightgrey.svg"/></a>
<a href="https://ui.adsabs.harvard.edu/abs/2020ApJS..250...34C/"><img src="https://img.shields.io/badge/ApJS-Conroy+2020-lightgrey.svg"/></a>
</p>
<p align="center">
<a href="http://phoebe-project.org"><img src="./images/console.gif" alt="Console Animation" width="600px" align="center"/></a>
</p>
INTRODUCTION
------------
PHOEBE stands for PHysics Of Eclipsing BinariEs. PHOEBE is pronounced [fee-bee](https://www.merriam-webster.com/dictionary/phoebe?pronunciation&lang=en_us&file=phoebe01.wav).
PHOEBE 2 is a rewrite of the original PHOEBE code. For most up-to-date information please refer to the PHOEBE project webpage: [http://phoebe-project.org](http://phoebe-project.org)
PHOEBE 2.0 is described by the release paper published in the Astrophysical Journal Supplement, [Prša et al. (2016, ApJS 227, 29)](https://ui.adsabs.harvard.edu/#abs/2016ApJS..227...29P). The addition of support for misaligned stars in version 2.1 is described in [Horvat et al. (2018, ApJS 237, 26)](https://ui.adsabs.harvard.edu/#abs/2018ApJS..237...26H). Interstellar extinction and support for Python 3 was added in version 2.2 and described in [Jones et al. (2020, ApJS 247, 63)](https://ui.adsabs.harvard.edu/abs/2020ApJS..247...63J). Inclusion of a general framework for solving the inverse problem as well as support for the [web and desktop clients](http://phoebe-project.org/clients) was introduced in version 2.3 as described in [Conroy et al. (2020, ApJS 250, 34)](https://ui.adsabs.harvard.edu/abs/2020ApJS..250...34C), which also removes support for Python 2. PHOEBE 2.4 improves on the geometry and ebai estimators, updates gaussian processes to use either scikit-learn or celerite2, and adds support for submitting compute or solver runs on external servers. These updates and fitting "best practices" will be discussed in Kochoska et al., in prep.
PHOEBE 2 is released under the [GNU General Public License v3](https://www.gnu.org/licenses/gpl-3.0.en.html).
The source code is available for download from the [PHOEBE project homepage](http://phoebe-project.org) and from [github](https://github.com/phoebe-project/phoebe2).
The development of PHOEBE 2 is funded in part by [NSF grant #1517474](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1517474), [NSF grant #1909109](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1909109) and [NASA 17-ADAP17-68](https://ui.adsabs.harvard.edu/abs/2017adap.prop...68P).
DOWNLOAD AND INSTALLATION
-------------------------
The easiest way to download and install PHOEBE 2 is by using pip (make sure you're using the correct command for pip that points to your python3 installation - if in doubt use something like `python3 -m pip install phoebe`):
pip install phoebe
To install it site-wide, prefix the `pip` command with `sudo` or run it as root.
To download the PHOEBE 2 source code, use git:
git clone https://github.com/phoebe-project/phoebe2.git
To install PHOEBE 2 from the source locally, go to the `phoebe2/` directory and issue:
pip install .
Note that as of the 2.4.16 release, PHOEBE requires Python 3.8 or later. For further details on pre-requisites consult the [PHOEBE project webpage](http://phoebe-project.org/install/2.4).
GETTING STARTED
---------------
PHOEBE 2 has a fairly steep learning curve. To start PHOEBE from python, issue:
python
>>> import phoebe
>>>
As of the 2.3 release, PHOEBE also includes a desktop and web client user-interface which is installed independently of the python package here. See the [phoebe2-ui repository](https://github.com/phoebe-project/phoebe2-ui) and [phoebe-project.org/clients](http://phoebe-project.org/clients) for more details.
To understand how to use PHOEBE, please consult the [tutorials, scripts and manuals](http://phoebe-project.org/docs/2.4/) hosted on the PHOEBE webpage.
CHANGELOG
----------
### 2.4.19
### 2.4.18
* Fix handling of spots in single star rotstar case where spots were not co-rotating properly [#1017]
* Fix misaligned spots bug that caused size of spot to change across the rotation period [#1017]
* Fix animation bug which prevented passing times as a numpy array [#1018]
* Fix continue_from support for scipy optimizers [#1041]
* Fix support for astropy 7.x units [#1043]
### 2.4.17
* Fix support for numpy 2.0. [#982]
### 2.4.16
* Fix handling of floating-point precision near the aligned case that used to result in error from libphoebe. [#965]
* Updates to phoebe-server to be compatible with modern browser requirements. [#959]
* Fix support for python 3.13, remove official support for python 3.7. [#968]
### 2.4.15
* Fix handling of include_times for RVs with compute_times/phases. [#889]
* GPs on models computed in phase-space will be properly computed based on residuals in time space. [#899]
* Fix units of requivfrac. [#894]
* Fix adopting mask_phases from lc_geometry. [#896]
* Fix population of wavelength array in load function for passbands. [#914]
* Temporarily cap numpy dependency < 2.0. [#930]
* Fix installation of phoebe-server CLI script to launch from UI. [#929]
* Fix passing compute to export_solver with features attached. [#922]
* sigmas_lnf: change handling of noise-nuissance parameter for RVs to no longer depend on the RV amplitude. [#901]
* Remove duplicated phoebe-server code. [#940]
* Fix python 3.12+ support by updating invalid escape sequences. [#948]
* Improved precision in calculation of constraints. [#945]
### 2.4.14
* Fix MPI off to not broadcast if never enabled
* Fix warning message in dynesty solver
* Fix multi-compute with enabled/disabled datasets
* Fix error message in compute_ld_coeffs
* Fix segfaults in macos-14
* Now requires C++14-compatible compiler
### 2.4.13
* optimization: dynamical RVs avoid unnecessary meshing
* run_checks no longer requires ck2004 atmosphere tables if no datasets use ck2004
* fix treatment of distance for alternate backends (ellc, jktebop)
### 2.4.12 - build system update
* upgrade the build system to pyproject.toml with setuptools as backend and pip as frontend.
* drop the dependency on the obsolete distutils module.
* swap nosetests for pytest.
* small build-related bugfixes throughout the code.
### 2.4.11
* fix jktebop backend handling of mass-ratio and eccentricity for RVs.
* bumps version requirements in pip for numpy, scipy, astropy.
* allows sma@star and asini@star to flip to solve for q
* fixes handling of spots on rotating single stars.
* fixes constraint migration for 2.3 -> 2.4
### 2.4.10
* fixes implementation of gravitational redshift.
* fixes an unitialized value problem in gradients resulting in nans for effective temperatures.
* minor updates to passband exporting to support upcoming 2.5 release on the passbands server.
* allows setting SelectParameter to an array or tuple (in addition to a list).
### 2.4.9 - asynchronous spots bugfix
* fixes bug introduced in 2.4.8 and ensures that temperatures are recomputed for spots when the star is rotating asynchronously.
### 2.4.8 - spots optimization bugfix
* spots no longer force the mesh to be recomputed at each timepoint.
* updates for numpy compatibility and wider test matrix.
### 2.4.7 - line profile bugfix
* fix bug where wavelength arrays that did not include the central wavelength were returning nans for fluxes.
### 2.4.6 - potential to requiv TypeError bugfix
* fix bug where libphoebe was incorrectly raising an error suggesting the potential was out of bounds.
### 2.4.5 - negative mass bugfix
* fix bug where mass could be set to a negative value causing constraints to resolve to nans.
### 2.4.4 - constraint flipping bugfix
* fix bug where flipping Kepler's third law constraint multiple times would fail.
* fix bug when flipping requivsumfrac and requivratio constraints.
### 2.4.3 - use_server with features bugfix
* fix typo that raised error when using use_server with features attached
* added new `addl_slurm_kwargs` parameter to pass any options to slurm scheduler
### 2.4.2 - l3 handling distance in absolute pblum_mode bugfix
* fix conversion between l3 and l3_frac to account for distance when pblum_mode
is absolute
* fix tagged phoebe version in cached bundles to avoid import warning
### 2.4.1 - solver filtering and plotting bugfix
* fix filtering error when not explicitly passing solver to run_solver
* fix exposing analytic model from lc geometry estimator
* fix phase-sorting when plotting solution from ebai estimator
### 2.4.0 - solver and gaussian process improvements release
* add support for differential evolution optimizer solver
* add support for differential corrections optimizer solver
* optimizers: ability to continue runs from previous solutions (for most optimizers)
* improvements to geometry and ebai estimators to use ligeor as a new built-in dependency
* gaussian processes now use celerite2 or scikit-learn instead of celerite
* emcee sampler: additional plotting styles to check for convergence, checks to ensure starting sample is physical, and added ability to continue a previous run from any arbitrary iteration in a previous run
* new support for running jobs on external servers via crimpl
* clarified distinction between chi2 and mle
### 2.3.63 - constraint feature bugfix
* fix bug where creating a custom constraint for parameters within features was not correctly identifying the constrained parameter and was raising an error when attempting to set the value of the constraining parameter.
### 2.3.62 - attach_job ferr bugfix
* fix bug where error file was not properly loaded when retrieving error from external job
### 2.3.61 - M1 compiler optimization bugfix
* remove compiler optimizations that are not portable to ARM architectures
### 2.3.60 - passband timestamp bugfix
* compare version strings instead of datetime to avoid some systems throwing an error when looking for passband updates.
* see also 2.3.13 release.
### 2.3.59 - extinction constraint bugfix
* fixes extinction constraint when flipping to solve for Av
### 2.3.58 - astropy 5.0 units bugfix
* fixes support for astropy 5.0 changes to unit physical types (see also 2.3.51).
* b.save now requires delayed and failed constraints to run before saving.
### 2.3.57 - remove inadvertent typo while sampling distributions
* introduced in 2.3.55
### 2.3.56 - setup without m2r bugfix
* fixes installation (on some machines) where m2r is not installed
### 2.3.55 - sample_distribution_collection index bugfix
* fixes handling distributions on array parameters within sample_distribution_collection and run_compute(sample_from).
### 2.3.54 - distribution bugfix
* updates `distl` to convert units with recent changes to astropy. See also the changes in 2.3.51 and 2.3.52.
* fixes median introduced in 2.3.52 to act on distribution object instead of just arrays.
### 2.3.53 - adopt_solution adopt_values bugfix
* adopting a solution with `adopt_values=True` for a sampler solver will now adopt the median from the samples rather than the mean, to be consistent with the central values reported by the distributions themselves.
### 2.3.52 - run_all_constraints support for array parameters bugfix
* fixes new run_all_constraints (new in 2.3.51) method to work on array parameters (compute_times/compute_phases).
### 2.3.51 - units physical type astropy update bugfix
* fixes parsing the physical type of a unit in latest releases of astropy. Without this fix, some constraints may fail to run.
* implements a new b.run_all_constraints, which is now automatically called when importing from a file in case any constraints were in the failed state.
### 2.3.50 - contact binary estimators bugfix
* rv_geometry: explicitly look for RVs attached to stars (not envelopes, which raised a lookup error).
* run_checks_solver: run compatibility checks between solver and hierarchies. Contact binaries are not supported by lc_geometry or ebai, single stars are not supported by lc_geometry, ebai, or rv_geometry.
### 2.3.49 - requivsumfrac flipping bugfix
* fix remaining cases for flipping requivsumfrac constraint (see 2.3.45 bugfix release for the partial fix for some, but not all, cases)
* migrate from Travis CI to GitHub actions for CI testing
### 2.3.48 - mu atm out-of-bounds bugfix
* fixes atmosphere out-of-bounds error caused by mu that should be exactly 0 or 1, but numerically out-of-bounds.
### 2.3.47 - calculate_lnp bugfix
* fixes calculate_lnp to more robustly handle parameter matching for both the constrained and unconstrained case
* fixes default_binary constructor when overriding label of the 'binary' orbit
* fixes typo in ellc backend for the period==1 case
### 2.3.46 - rvperiodogram SB1 bugfix
* fixes handling of SB1s (RVs with a single component) in the rv_periodogram estimator
* adds checks to forbid zeros in dataset sigmas
### 2.3.45 - requivsumfrac constraint flipping bugfix
* fixes bug in flipping requivsumfrac constraint for requivratio when requiv of the secondary star is already constrained
### 2.3.44 - add_component/figure bugfix
* fixes bug in assigning parameter tags when passing function (as kind) to add_component or add_figure.
### 2.3.43 - RV SB1 residuals bugfix
* fixes silently ignoring component (while calculating residuals, chi2, etc) in an RV dataset in which times are provided, but observational RVs are not.
* improves error messages in calculate_residuals when resulting in no or more than one matches.
### 2.3.42 - RV plotting bugfix
* fixes plotting RVs when compute_times is provided instead of times. Previously would raise an error that the 'rvs' parameter could not be found as it is hidden in the dataset.
### 2.3.41 - estimators missing sigmas bugfix
* fixes handling of default sigmas within LC estimators when no sigmas are provided in the dataset.
### 2.3.40 - custom lnprobability bugfix
* fixes handling of `custom_lnprobability_callable` when passed to `run_solver`. Previously an error was raised stating it was not a supported keyword argument and was not passed to the script correctly during `export_solver`.
### 2.3.39 - optimizer progressbar and sample_from infinite failed samples bugfix
* fixes bug in increment size in progressbar for optimizers that appears to go past 100% before completion
* when running a forward model sampling from a distribution (or a solution), only allow 10 failed samples per draw before raising an error to prevent getting stuck in an infinite loop if the parameter space is unphysical
* add_compute(overwrite=True) now allows the existing tag to already exist in solutions (in addition to models)
### 2.3.38 - mvgaussian uncertainties bugfix
* updates distl to 0.3.1 which includes a fix to treat mvgaussian uncertainties from percentiles like other distribution types
* forces updating kepler's third law constraint when importing a bundle from before 2.3.25 bugfix
### 2.3.37 - add_distribution allow_multiple_matches bugfix
* fixes bug where tags on distributions were improperly applied when passing `allow_multiple_matches=True`
* disables run_compute progressbar within solvers
* fixes typo in description of progress parameter
### 2.3.36 - MPI passband directory bugfix
* fixes bug where running phoebe for the first time within MPI crashes due to each processor attempting to create the passband directory.
### 2.3.35 - rotstar bugfix
* bugfix in equation for converting rotation period/frequency to potential that affects the shapes of rapidly rotating stars with distortion_method of 'rotstar'.
* single stars: implements the missing constraint for requiv_max for single star systems.
### 2.3.34 - ebai and continue_from bugfix
* ebai: map phases onto -0.5,0.5 interval after computing phase-shift and sending to ebai
* emcee: cast fitted_uniqueids to list when applying wrap indices for continue_from
### 2.3.33 - constrained and multivariate priors bugfix
* fixes handling of multivariate distributions as priors
* run_compute sample_from: use serial mode when sample_num is 1
* run_compute when passing solution instead of sample_from, default to sample_num=1 if adopt_distributions is False
* export_solver: exclude unneeded distributions/solutions from the exported script to optimize filesize
* export_solver: adds (undocumented until 2.4 release) support for autocontinue
* export_compute: do not require explicitly passing compute if only one exists matching the filter
* calculate_lnp: include_constrained now defaults to True
### 2.3.32 - phoebe-server bugfix
* fixes version of flask-socketio dependency to remain compatible with desktop client
* ensures path and query string are cast to string
### 2.3.31 - SB1 with compute_times bugfix
* fixes fitting radial velocities where only one component has observations (SB1 system) and compute_times are provided.
* compute_residuals now returns an empty array when the corresponding times_array is empty, instead of raising an error
### 2.3.30 - ld_coeffs fitting bugfix
* all fitting ld_coeffs. Each coefficient is referenced by index and can be fit or have distributions attached independently. See [tutorial](http://phoebe-project.org/docs/latest/tutorials/fitting_ld_coeffs) for more details.
* also fixes support for [custom constraints](http://phoebe-project.org/docs/latest/tutorials/constraints_custom) which can be used to link ld_coeffs between datasets of the same passband, for example.
### 2.3.29 - adopt_solution bugfix
* do not require passing solution to adopt_solution (when adopting distributions) if only one solution exists
* fix distribution_overwrite_all not defined error
### 2.3.28 - solver checks bugfix
* excludes datasets not supported in fitting (mesh, orb, lp, etc) from forward-model within inverse solvers.
* run_checks_solver now checks for nans in dataset arrays.
### 2.3.27 - add_compute/solver overwrite bugfix
* fixes bug where passing overwrite to add_compute or add_solver raised an error if run_compute/run_solver already created a model/solution tagged with that same label.
### 2.3.26 - multiprocessing bugfix
* allows disabling multiprocessing (or lowering the number of available processors). Multiprocessing is used by default when not within MPI and when calling `run_compute` with `sample_from` or `run_solver` with solvers that support parallelization. Some installations of multiprocessing on Mac may cause issues, in which case you can now for PHOEBE to run in serial mode.
* this introduces new `phoebe.multiprocessing_off()`, `phoebe.multiprocessing_on()`, `phoebe.multiprocessing_get_nprocs()`, and `phoebe.multiprocessing_set_nprocs(n)` functions, but the default behavior remains unchanged.
### 2.3.25 - distribution propagation bugfix
* updates distl to 0.2.0 release which includes support for retaining simultaneous sampling between copies of the same underyling distribution, increased precision on latex formatting of uncertainties, and maintaining labels during unit conversion.
* fix propagating distl distribution objects through constraints to arbitrary depth.
* update Kepler's third law constraint to be distl-friendly (1+q becomes q+1).
* parameter.get_distribution: new argument `delta_if_none` to allow returning a delta function. This is now the default behavior from within b.get/plot_distribution_collection
* b.sample_distribution_collection: rename `N` argument to `sample_size` (but with backwards compatibility support for `N`).
* run_checks_solver now includes a warning if priors contain "around" distributions.
### 2.3.24 - emcee continue_from bugfix
* skip nwalkers vs number of parameters check when continue_from is set
* fallback on twigs when original uniqueids not available (when attempting to continue from a solution loaded into a new bundle, for example)
* wrapping rules for angle parameters fallback on median of last iteration in the available chain when uniqueids do not match as the initializing distribution likely does not exist anymore
### 2.3.23 - ellc flux-weighted RV vsini bugfix
* compute vsini from syncpar and pass to RV to enable Rossiter-McLaughlin effect when rv_method='flux-weighted'.
### 2.3.22 - trace plotting nanslice bugfix
* fix bug in plotting MCMC trace plots when any given chain is all nans.
### 2.3.21 - estimators phase-bin bugfix
* fix bug resulting in a nanslice error when phase_bin is enabled within estimators resulting in a single entry in any given bin. Now, sigmas will be ignored within the estimator in these cases with a warning in the logger.
### 2.3.20 - legacy passband bugfix
* now correctly maps passbands when using the legacy backend (only affects TESS and Tycho)
* falls back on PHOEBE atmospheres when needing to compute pblums internally for flux scaling prior to calling legacy backend
* from_legacy bugfix in parsing linear limb-darkening coefficients
* export_compute/export_solver: add commment warning against manually editing script
* fixes typo which raised error when rescaling passband-dependent mesh columns
### 2.3.19 - passbands update available datetime string parsing bugfix
* some systems fail to parse common datetime strings, resulting in inability to import phoebe when checking for available passband updates. This now prints and logs an error message, but does not prevent import.
* checking for available passband updates on import now correctly respects the PHOEBE_ENABLE_ONLINE_PASSBANDS environment variable.
* failed online passbands connection error messages are now only included in the log once (per processor) to avoid spamming the log (but are shown by default when manually calling phoebe.list_online_passbands).
### 2.3.18 - estimator.ebai with wide eclipse bugfix (attempt 2)
* actually fixes bug (see 2.3.13) that raised internal error when running ebai on an eclipse with width larger than 0.25 in phase. Note that these systems will still return nans as ebai is not well-suited to these systems, but the internal error will no longer occur.
### 2.3.17 - optimizer MPI bugfix
* enables parallelization (per-time or per-dataset) for optimizers.
### 2.3.16 - rv_geometry with different lengths bugfix
* fixes estimator.rv_geometry when primary and secondary component have different times.
### 2.3.15 - alternate backends with l3_frac and dataset-scaled bugfix
* fix bug in applying l3_frac within dataset scaling (pblum_mode='dataset-scaled') when using alternate backends.
### 2.3.14 - import_solution with uniqueid mismatch bugfix
* fix bug where falling back on twigs when importing a solution on a different bundle failed. It is still suggested to save the bundle and import solutions on the bundle used when calling export_solver.
### 2.3.13 - estimator.ebai with wide eclipse bugfix
* fix bug (but not really - see 2.3.18) that raised internal error when running ebai on an eclipse with width larger than 0.25 in phase. Note that these systems will still return nans as ebai is not well-suited to these systems, but the internal error will no longer occur.
### 2.3.12 - plot univariate distributions latex label bugfix
* fix bug in the latex labels on plots when converting from multivariate to univariate distributions.
### 2.3.11 - continue_from run_checks bugfix
* fix bug where run_checks raised an error for an empty init_from if continue_from was set.
### 2.3.10 - alternate backend atm bugfix
* fix bug where atm parameter was ignored during passband luminosity scaling while using an alternate backend, resulting in an atmosphere out-of-bounds error in some situations.
### 2.3.9 - online passbands bugfix
* stop attempting to query online passbands after three failed attempts to avoid significant time cost otherwise.
### 2.3.8 - plotting exclusion bugfix
* fix bug where datasets were excluded from plotting if not in any models
* fix syntax error in run_checks
### 2.3.7 - kwargs errors bugfix
* fix small bugs that could raise errors when passing some filter kwargs to `run_solver` or `sample_distribution_collection`
### 2.3.6 - GP run_checks bugfix
* fix check for presence of observational data during run_checks to only consider datasets with attached gaussian processes (GPs)
### 2.3.5 - lp run_checks bugfix
* fix length comparison of flux_densities and wavelengths during run_checks
### 2.3.4 - passband/extinction bugfix
* fixed Gordon extinction coefficient calculation in line with erratum http://dx.doi.org/10.1088/0004-637X/705/2/1320.
* added check to require updating affected-passbands (versions at tables.phoebe-project.org have been updated)
* removed duplicate Passband methods causing ld/ldint passband computations to fail
### 2.3.3 - latex representation bugfix
* fix the latex representation string for `fillout_factor`, `pot`, `pot_min`,
and `pot_max` parameters in a contact binary.
### 2.3.2 - manifest to include readme bugfix
* manually include README.md in MANIFEST.in to avoid build errors from pip
### 2.3.1 - pip install bugfix
* removes m2r as an (unlisted) build-dependency. m2r is only required to build the submission to submit to pypi, but is not required to install or run phoebe locally.
### 2.3.0 - inverse problem feature release
* Add support for inverse problem solvers, including "estimators", "optimizers", and "samplers"
* Add support for attaching distributions (as [distl](https://github.com/kecnry/distl) objects) to parameters, including priors and posteriors.
* Add support for [web and desktop clients](http://phoebe-project.org/clients) via a light-weight built in `phoebe-server`.
* Removed support for Python 2 (now requires Python 3.6+)
* Implement optional gaussian processes for light curves
* Implement phase-masking
* Added official support for [ellc](https://github.com/pmaxted/ellc) and [jktebop](https://www.astro.keele.ac.uk/jkt/codes/jktebop.html) alternate backends
* Per-component and per-dataset RV offsets
* Fixed phasing in time-dependent systems
* Distinction between anomalous and sidereal period in apsidal motion cases
* Extinction parameters moved from per-dataset to the system-level
* Added several new optional constraints
* Overhaul of the run_checks framework
* Updated scipy dependency to 1.7+
* Numerous small bugfixes and enhancements
### 2.2.2 - kwargs bugfix
* fix overriding mesh_init_phi as kwarg to run_compute
* fix pblum computation to not require irrad_method kwarg
* fix bundle representation to exclude hidden parameters
### 2.2.1 - g++/gcc version check bugfix
* Improves the detection of g++/gcc version to compare against requirements during setup.
### 2.2.0 - extinction feature release
* Add support for interstellar extinction/reddening.
* Support for Python 3.6+ in addition to Python 2.7+.
* Overhaul of limb-darkening with new ld_mode and ld_coeffs_source parameters.
* Overhaul of passband luminosity and flux scaling with new pblum_mode parameter, including support for maintaining color relations between multiple passbands.
* Ability to provide third light in either flux or percentage units, via the new l3_mode and l3_frac parameters.
* Support for computing a model at different times than the observations, via the new compute_times or computes_phases parameter.
* Transition from pickled to FITS passband files, with automatic detection for available updates. The tables can now also be accessed via tables.phoebe-project.org.
* DISABLED support for beaming/boosting.
* Allow flipping Kepler's thrid law constraint to solve for q.
* Require overwrite=True during add_* or run_* methods that would result in overwriting an existing label.
* Constraint for logg.
* Account for time-dependence (dpdt/dperdt) in t0 constraints.
### 2.1.17 - ignore fits passbands bugfix
* Future-proof to ignore for passband files with extensions other than ".pb"
which may be introduced in future versions of PHOEBE.
### 2.1.16 - eccentric/misaligned irradiation bugfix
* Fixes bug where irradiation was over-optimized and not recomputed as needed for
eccentric or misaligned orbits. Introduced in the optimizations in 2.1.6.
### 2.1.15 - spots bugfix
* Fixes 'long' location of spots on single stars.
* Fixes treatment of spots on secondary 'half' of contact systems.
* Fixes loading legacy files with a spot that has source of 0 due to a bug in legacy.
* Fixes overriding 'ntriangles' by passing keyword argument to run_compute.
### 2.1.14 - contacts inclination RVs bugfix
* Fixes the polar rotation axis for RVs in contact systems with non-90 inclinations
by re-enabling the alignment (pitch, yaw) constraints and enforcing them to be 0.
### 2.1.13 - constraint flip loop bugfix
* Fixes infinite loop when trying to flip esinw AND ecosw
* Adds ability to flip mass (Kepler's third law) to solve for q
* Fixes bug introduced in 2.1.9 in which out-of-limits constrained parameters in
an envelope were being raised before all constraints could resolve successfully.
### 2.1.12 - legacy ephemeris and kwargs checks bugfix
* Fixes applying t0 when importing legacy dataset which use phase.
* Fixes ignoring other compute options when running checks on kwargs during run_compute.
### 2.1.11 - legacy dataset import bugfix
* Fixes loading legacy datasets which use phase (by translating to time with the current ephemeris).
* Fixes loading legacy datasets with errors in magnitudes (by converting to errors in flux units).
* Fixes plotting RV datasets in which only one component has times (which is often the case when importing from a legacy file).
### 2.1.10 - ldint bugfix
* Removes ldint from the weights in the computations of RVs and LPs.
### 2.1.9 - limits bugfix
* Fixes a bug where parameter limits were not being checked and out-of-limits errors not raised correctly.
### 2.1.8 - mesh convergence bugfix
* Fixes a bug where certain parameters would cause the meshing algorithm to fail to converge. With this fix, up to 4 additional attempts will be made with random initial starting locations which should converge for most cases.
### 2.1.7 - comparison operators bugfix
* Fixes a bug where comparisons between Parameters/ParameterSets and values were returning nonsensical values.
* Comparing ParameterSets with any object will now return a NotImplementedError
* Comparing Parameters will compare against the value or quantity, with default units when applicable.
* Comparing equivalence between two Parameter objects will compare the uniqueids of the Parameters, NOT the values.
### 2.1.6 - optimization bugfix
* Fixes a bug where automatic detection of eclipses was failing to properly fallback on only detecting the horizon.
* Introduces several other significant optimizations, particularly in run_compute.
### 2.1.5 - single star get_orbits and line-profile bugfix
* Fixes a bug in hierarchy.get_orbits() for a single star hierarchy which resulted in an error being raised while computing line-profiles.
### 2.1.4 - freq constraint bugfix
* This fixes the inversion of the frequency constraint when flipping to solve for period.
### 2.1.3 - overflow error for semidetached systems bugfix
* Semi-detached systems could raise an error in the backend caused by the volume being slightly over the critical value when translating between requiv in solar units to volume in unitless/roche units. When this numerical discrepancy is detected, the critical value is now adopted and a warning is sent via the logger.
### 2.1.2 - constraints in solar units bugfix
* All constraints are now executed (by default) in solar units instead of SI. The Kepler's third law constraint (constraining mass by default) failed to have sufficient precision in SI, resulting in inaccurate masses. Furthermore, if the constraint was flipped, inaccurate values of sma could be passed to the backend, resulting in overflow in the semi-detached case.
* Bundles created before 2.1.2 and imported into 2.1.2+ will continue to use SI units for constraints and should function fine, but will not benefit from this update and will be incapable of changing the system hierarchy.
### 2.1.1 - MPI detection bugfix
* PHOEBE now detects if its within MPI on various different MPI installations (previously only worked for openmpi).
### 2.1.0 - misalignment feature release
* Add support for spin-orbit misalignment
* Add support for line profile (LP) datasets
* Switch parameterization from rpole/pot to requiv (including new semi-detached and contact constraints)
* Significant rewrite to plotting infrastructure to use [autofig](http://github.com/kecnry/autofig)
* Introduction of [nparray](http://github.com/kecnry/nparray) support within parameters
* Significant rewrite to mesh dataset infrastructure to allow choosing which columns are exposed
* Distinguish Roche (xyz) from Plane-of-Sky (uvw) coordinates
* Ability to toggle interactive constraints and interactive system checks independently
* Implementation of ParameterSet.tags and Parameter.tags
* General support for renaming tags/labels
* Expose pblum for contacts
* Expose per-component r and rprojs for contacts (used to be based on primary frame of reference only)
* Fix definition of vgamma (see note in 2.0.4 release below)
* Remove phshift parameter (see note in 2.0.3 release below)
* Permanently rename 'long' parameter for spots (see note in 2.0.2 release below)
* Numerous other minor bug fixes and improvements
### 2.0.11 - astropy version dependency bugfix
* Set astropy dependency to be >=1.0 and < 3.0 (as astropy 3.0 requires python 3)
### 2.0.10 - legacy import extraneous spaces bugfix
* Handle ignoring extraneous spaces when importing a PHOEBE legacy file.
### 2.0.9 - \_default Parameters bugfix
* Previously, after loading from a JSON file, new datasets were ignored by run_compute because the \_default Parameters (such as 'enabled') were not stored and loaded correctly. This has now been fixed.
* PS.datasets/components now hides the (somewhat confusing) \_default entries.
* unicode handling in filtering is improved to make sure the copying rules from JSON are followed correctly when loaded as unicodes instead of strings.
### 2.0.8 - contacts bugfix
* Remove unused Parameters from the Bundle
* Improvement in finding the boundary between the two components of a contact system
### 2.0.7 - legacy import/export bugfix
* Handle missing parameters when importing/exporting so that a Bundle exported to a PHOEBE legacy file can successfully be reimported
* Handle importing standard weight from datasets and converting to sigma
### 2.0.6 - unit conversion bugfix
* When requesting unit conversion from the frontend, astropy will now raise an error if the units are not compatible.
### 2.0.5 - semi-detached bugfix
* Fixed bug in which importing a PHOEBE legacy file of a semi-detached system failed to set the correct potential for the star filling its roche lobe. This only affects the importer itself.
* Implemented 'critical_rpole' and 'critical_potential' constraints.
### 2.0.4 - vgamma temporary bugfix
* The definition of vgamma in 2.0.* is in the direction of positive z rather than positive RV. For the sake of maintaining backwards-compatibility, this will remain unchanged for 2.0.* releases but will be fixed in the 2.1 release to be in the direction of positive RV. Until then, this bugfix handles converting to and from PHOEBE legacy correctly so that running the PHOEBE 2 and legacy backends gives consistent results.
### 2.0.3 - t0_supconj/t0_perpass bugfix
* Fixed constraint that defines the relation between t0_perpass and t0_supconj.
* Implement new 't0_ref' parameter which corresponds to legacy's 'HJD0'.
* Phasing now accepts t0='t0_supconj', 't0_perpass', 't0_ref', or a float representing the zero-point. The 'phshift' parameter will still be supported until 2.1, at which point it will be removed.
* Inclination parameter ('incl') is now limited to the [0-180] range to maintain conventions on superior conjunction and ascending/descending nodes.
* Fixed error message in ldint.
* Fixed the ability for multiple spots to be attached to the same component.
* Raise an error if attempting to attach spots to an unsupported component. Note: spots are currently not supported for contact systems.
### 2.0.2 - spots bugfix
* If using spots, it is important that you use 2.0.2 or later as there were several important bug fixes in this release.
* 'colon' parameter for spots has been renamed to 'long' (as its not actually colongitude). For 2.0.X releases, the 'colon' parameter will remain as a constrained parameter to avoid breaking any existing scripts, but will be removed with the 2.1.0 release.
* Features (including spots) have been fixed to correctly save and load to file.
* Corotation of spots is now enabled: if the 'syncpar' parameter is not unity, the spots will correctly corotate with the star. The location of the spot (defined by 'colat' and 'long' parameters) is defined such that the long=0 points to the companion star at t0. That coordinate system then rotates with the star according to 'syncpar'.
### 2.0.1 - ptfarea/pbspan bugfix
* Definition of flux and luminosity now use ptfarea instead of pbspan. In the bolometric case, these give the same quantity. This discrepancy was absorbed entirely by pblum scaling, so relative fluxes should not be affected, but the underlying absolute luminosities were incorrect for passbands (non-bolometric). In addition to under-the-hood changes, the exposed mesh column for 'pbspan' is now removed and replaced with 'ptfarea', but as this is not yet a documented column, should not cause backwards-compatibility issues.
### 2.0.0 - official release of PHOEBE 2.0
* PHOEBE 2.0 is not backwards compatible with PHOEBE 2.0-beta (although the interface has not changed appreciably) or with PHOEBE 2.0-alpha (substantial rewrite). Going forward with incremental releases, every effort will be put into backwards compatibility. The changes and important considerations of the new version will be detailed in the ChangeLog.
* If upgrading from PHOEBE 2.0-beta or PHOEBE 2.0-alpha, it is necessary to do a clean re-install (clear your build and installation directories), as the passband file format has changed and will not automatically reset unless these directories are manually cleared. Contact us with any problems.
QUESTIONS? SUGGESTIONS? CONCERNS?
---------------------------------
Contact us! Issues and feature requests should be submitted directly through GitHub's [issue tracker](https://github.com/phoebe-project/phoebe2/issues). Additional questions or feature requests should be submitted via [GitHub PHOEBE2 discussions](https://github.com/phoebe-project/phoebe2/discussions) or [GitHub PHOEBE2-UI discussions](https://github.com/phoebe-project/phoebe2-ui/discussions). We are eager to hear from you, so do not hesitate to [contact us](http://phoebe-project.org/help/contact)!
numpy
scipy
astropy
pytest
tqdm
corner
requests
python-socketio
flask
flask-cors
flask-socketio
gevent
gevent-websocket
LICENSE.md
MANIFEST.in
README.md
pyproject.toml
setup.py
client-server/phoebe-autofig
client-server/phoebe-server
phoebe/__init__.py
phoebe.egg-info/PKG-INFO
phoebe.egg-info/SOURCES.txt
phoebe.egg-info/dependency_links.txt
phoebe.egg-info/requires.txt
phoebe.egg-info/top_level.txt
phoebe/algorithms/__init__.py
phoebe/algorithms/ceclipse.cpp
phoebe/algorithms/interp_nDgrid.py
phoebe/atmospheres/__init__.py
phoebe/atmospheres/passbands.py
phoebe/atmospheres/tables/extinction/extinct.py
phoebe/atmospheres/tables/extinction/fm18.txt
phoebe/atmospheres/tables/passbands/README
phoebe/atmospheres/tables/passbands/bolometric.fits
phoebe/atmospheres/tables/passbands/johnson_v.fits
phoebe/atmospheres/tables/wd/atmcof.dat
phoebe/atmospheres/tables/wd/atmcofplanck.dat
phoebe/backend/__init__.py
phoebe/backend/backends.py
phoebe/backend/eclipse.py
phoebe/backend/etvs.py
phoebe/backend/horizon_analytic.py
phoebe/backend/mesh.py
phoebe/backend/mesh_wd.py
phoebe/backend/oc_geometry.py
phoebe/backend/universe.py
phoebe/constraints/__init__.py
phoebe/constraints/builtin.py
phoebe/constraints/expression.py
phoebe/dependencies/__init__.py
phoebe/dependencies/autofig/__init__.py
phoebe/dependencies/autofig/axes.py
phoebe/dependencies/autofig/call.py
phoebe/dependencies/autofig/callbacks.py
phoebe/dependencies/autofig/common.py
phoebe/dependencies/autofig/cyclers.py
phoebe/dependencies/autofig/figure.py
phoebe/dependencies/autofig/mpl_animate.py
phoebe/dependencies/crimpl/__init__.py
phoebe/dependencies/crimpl/common.py
phoebe/dependencies/crimpl/localthread.py
phoebe/dependencies/crimpl/remoteslurm.py
phoebe/dependencies/crimpl/remotethread.py
phoebe/dependencies/distl/__init__.py
phoebe/dependencies/distl/distl.py
phoebe/dependencies/distl/stats_custom.py
phoebe/dependencies/ligeor/__init__.py
phoebe/dependencies/ligeor/ebai/__init__.py
phoebe/dependencies/ligeor/ebai/ebai.py
phoebe/dependencies/ligeor/ebai/database/__init__.py
phoebe/dependencies/ligeor/ebai/database/generate.py
phoebe/dependencies/ligeor/ebai/database/model.py
phoebe/dependencies/ligeor/eclipse/__init__.py
phoebe/dependencies/ligeor/eclipse/eb_params.py
phoebe/dependencies/ligeor/models/__init__.py
phoebe/dependencies/ligeor/models/model.py
phoebe/dependencies/ligeor/models/polyfit.py
phoebe/dependencies/ligeor/models/twogaussian.py
phoebe/dependencies/ligeor/utils/__init__.py
phoebe/dependencies/ligeor/utils/interactive.py
phoebe/dependencies/ligeor/utils/lcutils.py
phoebe/dependencies/ligeor/utils/processing.py
phoebe/dependencies/nparray/__init__.py
phoebe/dependencies/nparray/nparray.py
phoebe/dependencies/unitsiau2015/__init__.py
phoebe/distortions/__init__.py
phoebe/distortions/roche.py
phoebe/distortions/rotstar.py
phoebe/dynamics/__init__.py
phoebe/dynamics/keplerian.py
phoebe/dynamics/nbody.py
phoebe/frontend/__init__.py
phoebe/frontend/bundle.py
phoebe/frontend/io.py
phoebe/frontend/tabcomplete.py
phoebe/frontend/default_bundles/create_default_bundles.py
phoebe/frontend/default_bundles/default_binary.bundle
phoebe/frontend/default_bundles/default_contact_binary.bundle
phoebe/frontend/default_bundles/default_star.bundle
phoebe/helpers/__init__.py
phoebe/lib/bodies.h
phoebe/lib/clipper.h
phoebe/lib/contact.h
phoebe/lib/cvec.h
phoebe/lib/eclipsing.h
phoebe/lib/gen_roche.h
phoebe/lib/gen_roche_lagrange_L1.h
phoebe/lib/gen_roche_lagrange_L2.h
phoebe/lib/gen_roche_lagrange_L3.h
phoebe/lib/hash.h
phoebe/lib/horizon.h
phoebe/lib/interpolation.h
phoebe/lib/ld_models.h
phoebe/lib/libphoebe.cpp
phoebe/lib/misaligned_roche.h
phoebe/lib/povray.h
phoebe/lib/redistribution.h
phoebe/lib/refinement.h
phoebe/lib/reflection.h
phoebe/lib/rot_star.h
phoebe/lib/sincos.h
phoebe/lib/triang_marching.h
phoebe/lib/triang_mesh.h
phoebe/lib/utils.h
phoebe/lib/wd_atm.h
phoebe/parameters/__init__.py
phoebe/parameters/component.py
phoebe/parameters/compute.py
phoebe/parameters/constraint.py
phoebe/parameters/dataset.py
phoebe/parameters/feature.py
phoebe/parameters/hierarchy.py
phoebe/parameters/parameters.py
phoebe/parameters/server.py
phoebe/parameters/setting.py
phoebe/parameters/system.py
phoebe/parameters/twighelpers.py
phoebe/parameters/unit_choices.py
phoebe/parameters/figure/__init__.py
phoebe/parameters/figure/common.py
phoebe/parameters/figure/dataset.py
phoebe/parameters/figure/distribution.py
phoebe/parameters/figure/solution.py
phoebe/parameters/solver/__init__.py
phoebe/parameters/solver/estimator.py
phoebe/parameters/solver/optimizer.py
phoebe/parameters/solver/sampler.py
phoebe/pool/__init__.py
phoebe/pool/error.py
phoebe/pool/mpi.py
phoebe/pool/multipool.py
phoebe/pool/pool.py
phoebe/pool/serial.py
phoebe/solverbackends/__init__.py
phoebe/solverbackends/lc_geometry.py
phoebe/solverbackends/rv_geometry.py
phoebe/solverbackends/solverbackends.py
phoebe/solverbackends/ebai/__init__.py
phoebe/solverbackends/ebai/bounds.data
phoebe/solverbackends/ebai/h2o.weights
phoebe/solverbackends/ebai/i2h.weights
phoebe/solverbackends/knn/__init__.py
phoebe/solverbackends/knn/contact.2g.knn
phoebe/solverbackends/knn/detached.pf.knn
phoebe/utils/__init__.py
Metadata-Version: 2.4
Name: phoebe
Version: 2.4.19
Summary: PHOEBE: modeling and analysis of eclipsing binary stars
Author-email: Andrej Prša <aprsa@villanova.edu>, Kyle Conroy <kyle.conroy@villanova.edu>, Angela Kochoska <angela.kochoska@villanova.edu>, Martin Horvat <martin.horvat@fmf.uni-lj.si>, Dave Jones <djones@iac.es>, Michael Abdul-Masih <michael.abdul-masih@eso.org>, Bert Pablo <hpablo@aavso.org>, Joe Giammarco <giammarc@eastern.edu>
Maintainer-email: Kyle Conroy <kyle.conroy@villanova.edu>, Andrej Prša <aprsa@villanova.edu>
License: GPL-3.0-or-later
Project-URL: homepage, http://phoebe-project.org
Project-URL: repository, https://github.com/phoebe-project/phoebe2
Project-URL: documentation, http://phoebe-project.org/docs
Keywords: phoebe,science,astronomy,astrophysics,binary stars,eclipsing binary stars
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: C
Classifier: Programming Language :: C++
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: User Interfaces
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: astropy
Requires-Dist: pytest
Requires-Dist: tqdm
Requires-Dist: corner
Requires-Dist: requests
Requires-Dist: python-socketio
Requires-Dist: flask
Requires-Dist: flask-cors
Requires-Dist: flask-socketio
Requires-Dist: gevent
Requires-Dist: gevent-websocket
Dynamic: license-file
PHOEBE 2.4
------------------------
<p align="center"><a href="http://phoebe-project.org"><img src="./images/logo_blue.svg" alt="PHOEBE logo" width="160px" align="center"/></a></p>
<pre align="center" style="text-align:center; font-family:monospace; margin: 30px">
pip install phoebe
</pre>
<p align="center">
<a href="https://pypi.org/project/phoebe/"><img src="https://img.shields.io/badge/pip-phoebe-blue.svg"/></a>
<a href="http://phoebe-project.org/install"><img src="https://img.shields.io/badge/python-3.8+-blue.svg"/></a>
<a href="https://github.com/phoebe-project/phoebe2/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-GPL3-blue.svg"/></a>
<a href="https://github.com/phoebe-project/phoebe2/actions/workflows/on_pr.yml?query=branch%3Amaster"><img src="https://github.com/phoebe-project/phoebe2/actions/workflows/on_pr.yml/badge.svg?branch=master"/></a>
<a href="http://phoebe-project.org/docs/2.4"><img src="https://github.com/phoebe-project/phoebe2-docs/actions/workflows/build-docs.yml/badge.svg?branch=2.4"/></a>
<br/>
<a href="https://ui.adsabs.harvard.edu/abs/2016ApJS..227...29P"><img src="https://img.shields.io/badge/ApJS-Prsa+2016-lightgrey.svg"/></a>
<a href="https://ui.adsabs.harvard.edu/abs/2018ApJS..237...26H"><img src="https://img.shields.io/badge/ApJS-Horvat+2018-lightgrey.svg"/></a>
<a href="https://ui.adsabs.harvard.edu/abs/2020ApJS..247...63J"><img src="https://img.shields.io/badge/ApJS-Jones+2020-lightgrey.svg"/></a>
<a href="https://ui.adsabs.harvard.edu/abs/2020ApJS..250...34C/"><img src="https://img.shields.io/badge/ApJS-Conroy+2020-lightgrey.svg"/></a>
</p>
<p align="center">
<a href="http://phoebe-project.org"><img src="./images/console.gif" alt="Console Animation" width="600px" align="center"/></a>
</p>
INTRODUCTION
------------
PHOEBE stands for PHysics Of Eclipsing BinariEs. PHOEBE is pronounced [fee-bee](https://www.merriam-webster.com/dictionary/phoebe?pronunciation&lang=en_us&file=phoebe01.wav).
PHOEBE 2 is a rewrite of the original PHOEBE code. For most up-to-date information please refer to the PHOEBE project webpage: [http://phoebe-project.org](http://phoebe-project.org)
PHOEBE 2.0 is described by the release paper published in the Astrophysical Journal Supplement, [Prša et al. (2016, ApJS 227, 29)](https://ui.adsabs.harvard.edu/#abs/2016ApJS..227...29P). The addition of support for misaligned stars in version 2.1 is described in [Horvat et al. (2018, ApJS 237, 26)](https://ui.adsabs.harvard.edu/#abs/2018ApJS..237...26H). Interstellar extinction and support for Python 3 was added in version 2.2 and described in [Jones et al. (2020, ApJS 247, 63)](https://ui.adsabs.harvard.edu/abs/2020ApJS..247...63J). Inclusion of a general framework for solving the inverse problem as well as support for the [web and desktop clients](http://phoebe-project.org/clients) was introduced in version 2.3 as described in [Conroy et al. (2020, ApJS 250, 34)](https://ui.adsabs.harvard.edu/abs/2020ApJS..250...34C), which also removes support for Python 2. PHOEBE 2.4 improves on the geometry and ebai estimators, updates gaussian processes to use either scikit-learn or celerite2, and adds support for submitting compute or solver runs on external servers. These updates and fitting "best practices" will be discussed in Kochoska et al., in prep.
PHOEBE 2 is released under the [GNU General Public License v3](https://www.gnu.org/licenses/gpl-3.0.en.html).
The source code is available for download from the [PHOEBE project homepage](http://phoebe-project.org) and from [github](https://github.com/phoebe-project/phoebe2).
The development of PHOEBE 2 is funded in part by [NSF grant #1517474](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1517474), [NSF grant #1909109](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1909109) and [NASA 17-ADAP17-68](https://ui.adsabs.harvard.edu/abs/2017adap.prop...68P).
DOWNLOAD AND INSTALLATION
-------------------------
The easiest way to download and install PHOEBE 2 is by using pip (make sure you're using the correct command for pip that points to your python3 installation - if in doubt use something like `python3 -m pip install phoebe`):
pip install phoebe
To install it site-wide, prefix the `pip` command with `sudo` or run it as root.
To download the PHOEBE 2 source code, use git:
git clone https://github.com/phoebe-project/phoebe2.git
To install PHOEBE 2 from the source locally, go to the `phoebe2/` directory and issue:
pip install .
Note that as of the 2.4.16 release, PHOEBE requires Python 3.8 or later. For further details on pre-requisites consult the [PHOEBE project webpage](http://phoebe-project.org/install/2.4).
GETTING STARTED
---------------
PHOEBE 2 has a fairly steep learning curve. To start PHOEBE from python, issue:
python
>>> import phoebe
>>>
As of the 2.3 release, PHOEBE also includes a desktop and web client user-interface which is installed independently of the python package here. See the [phoebe2-ui repository](https://github.com/phoebe-project/phoebe2-ui) and [phoebe-project.org/clients](http://phoebe-project.org/clients) for more details.
To understand how to use PHOEBE, please consult the [tutorials, scripts and manuals](http://phoebe-project.org/docs/2.4/) hosted on the PHOEBE webpage.
CHANGELOG
----------
### 2.4.19
### 2.4.18
* Fix handling of spots in single star rotstar case where spots were not co-rotating properly [#1017]
* Fix misaligned spots bug that caused size of spot to change across the rotation period [#1017]
* Fix animation bug which prevented passing times as a numpy array [#1018]
* Fix continue_from support for scipy optimizers [#1041]
* Fix support for astropy 7.x units [#1043]
### 2.4.17
* Fix support for numpy 2.0. [#982]
### 2.4.16
* Fix handling of floating-point precision near the aligned case that used to result in error from libphoebe. [#965]
* Updates to phoebe-server to be compatible with modern browser requirements. [#959]
* Fix support for python 3.13, remove official support for python 3.7. [#968]
### 2.4.15
* Fix handling of include_times for RVs with compute_times/phases. [#889]
* GPs on models computed in phase-space will be properly computed based on residuals in time space. [#899]
* Fix units of requivfrac. [#894]
* Fix adopting mask_phases from lc_geometry. [#896]
* Fix population of wavelength array in load function for passbands. [#914]
* Temporarily cap numpy dependency < 2.0. [#930]
* Fix installation of phoebe-server CLI script to launch from UI. [#929]
* Fix passing compute to export_solver with features attached. [#922]
* sigmas_lnf: change handling of noise-nuissance parameter for RVs to no longer depend on the RV amplitude. [#901]
* Remove duplicated phoebe-server code. [#940]
* Fix python 3.12+ support by updating invalid escape sequences. [#948]
* Improved precision in calculation of constraints. [#945]
### 2.4.14
* Fix MPI off to not broadcast if never enabled
* Fix warning message in dynesty solver
* Fix multi-compute with enabled/disabled datasets
* Fix error message in compute_ld_coeffs
* Fix segfaults in macos-14
* Now requires C++14-compatible compiler
### 2.4.13
* optimization: dynamical RVs avoid unnecessary meshing
* run_checks no longer requires ck2004 atmosphere tables if no datasets use ck2004
* fix treatment of distance for alternate backends (ellc, jktebop)
### 2.4.12 - build system update
* upgrade the build system to pyproject.toml with setuptools as backend and pip as frontend.
* drop the dependency on the obsolete distutils module.
* swap nosetests for pytest.
* small build-related bugfixes throughout the code.
### 2.4.11
* fix jktebop backend handling of mass-ratio and eccentricity for RVs.
* bumps version requirements in pip for numpy, scipy, astropy.
* allows sma@star and asini@star to flip to solve for q
* fixes handling of spots on rotating single stars.
* fixes constraint migration for 2.3 -> 2.4
### 2.4.10
* fixes implementation of gravitational redshift.
* fixes an unitialized value problem in gradients resulting in nans for effective temperatures.
* minor updates to passband exporting to support upcoming 2.5 release on the passbands server.
* allows setting SelectParameter to an array or tuple (in addition to a list).
### 2.4.9 - asynchronous spots bugfix
* fixes bug introduced in 2.4.8 and ensures that temperatures are recomputed for spots when the star is rotating asynchronously.
### 2.4.8 - spots optimization bugfix
* spots no longer force the mesh to be recomputed at each timepoint.
* updates for numpy compatibility and wider test matrix.
### 2.4.7 - line profile bugfix
* fix bug where wavelength arrays that did not include the central wavelength were returning nans for fluxes.
### 2.4.6 - potential to requiv TypeError bugfix
* fix bug where libphoebe was incorrectly raising an error suggesting the potential was out of bounds.
### 2.4.5 - negative mass bugfix
* fix bug where mass could be set to a negative value causing constraints to resolve to nans.
### 2.4.4 - constraint flipping bugfix
* fix bug where flipping Kepler's third law constraint multiple times would fail.
* fix bug when flipping requivsumfrac and requivratio constraints.
### 2.4.3 - use_server with features bugfix
* fix typo that raised error when using use_server with features attached
* added new `addl_slurm_kwargs` parameter to pass any options to slurm scheduler
### 2.4.2 - l3 handling distance in absolute pblum_mode bugfix
* fix conversion between l3 and l3_frac to account for distance when pblum_mode
is absolute
* fix tagged phoebe version in cached bundles to avoid import warning
### 2.4.1 - solver filtering and plotting bugfix
* fix filtering error when not explicitly passing solver to run_solver
* fix exposing analytic model from lc geometry estimator
* fix phase-sorting when plotting solution from ebai estimator
### 2.4.0 - solver and gaussian process improvements release
* add support for differential evolution optimizer solver
* add support for differential corrections optimizer solver
* optimizers: ability to continue runs from previous solutions (for most optimizers)
* improvements to geometry and ebai estimators to use ligeor as a new built-in dependency
* gaussian processes now use celerite2 or scikit-learn instead of celerite
* emcee sampler: additional plotting styles to check for convergence, checks to ensure starting sample is physical, and added ability to continue a previous run from any arbitrary iteration in a previous run
* new support for running jobs on external servers via crimpl
* clarified distinction between chi2 and mle
### 2.3.63 - constraint feature bugfix
* fix bug where creating a custom constraint for parameters within features was not correctly identifying the constrained parameter and was raising an error when attempting to set the value of the constraining parameter.
### 2.3.62 - attach_job ferr bugfix
* fix bug where error file was not properly loaded when retrieving error from external job
### 2.3.61 - M1 compiler optimization bugfix
* remove compiler optimizations that are not portable to ARM architectures
### 2.3.60 - passband timestamp bugfix
* compare version strings instead of datetime to avoid some systems throwing an error when looking for passband updates.
* see also 2.3.13 release.
### 2.3.59 - extinction constraint bugfix
* fixes extinction constraint when flipping to solve for Av
### 2.3.58 - astropy 5.0 units bugfix
* fixes support for astropy 5.0 changes to unit physical types (see also 2.3.51).
* b.save now requires delayed and failed constraints to run before saving.
### 2.3.57 - remove inadvertent typo while sampling distributions
* introduced in 2.3.55
### 2.3.56 - setup without m2r bugfix
* fixes installation (on some machines) where m2r is not installed
### 2.3.55 - sample_distribution_collection index bugfix
* fixes handling distributions on array parameters within sample_distribution_collection and run_compute(sample_from).
### 2.3.54 - distribution bugfix
* updates `distl` to convert units with recent changes to astropy. See also the changes in 2.3.51 and 2.3.52.
* fixes median introduced in 2.3.52 to act on distribution object instead of just arrays.
### 2.3.53 - adopt_solution adopt_values bugfix
* adopting a solution with `adopt_values=True` for a sampler solver will now adopt the median from the samples rather than the mean, to be consistent with the central values reported by the distributions themselves.
### 2.3.52 - run_all_constraints support for array parameters bugfix
* fixes new run_all_constraints (new in 2.3.51) method to work on array parameters (compute_times/compute_phases).
### 2.3.51 - units physical type astropy update bugfix
* fixes parsing the physical type of a unit in latest releases of astropy. Without this fix, some constraints may fail to run.
* implements a new b.run_all_constraints, which is now automatically called when importing from a file in case any constraints were in the failed state.
### 2.3.50 - contact binary estimators bugfix
* rv_geometry: explicitly look for RVs attached to stars (not envelopes, which raised a lookup error).
* run_checks_solver: run compatibility checks between solver and hierarchies. Contact binaries are not supported by lc_geometry or ebai, single stars are not supported by lc_geometry, ebai, or rv_geometry.
### 2.3.49 - requivsumfrac flipping bugfix
* fix remaining cases for flipping requivsumfrac constraint (see 2.3.45 bugfix release for the partial fix for some, but not all, cases)
* migrate from Travis CI to GitHub actions for CI testing
### 2.3.48 - mu atm out-of-bounds bugfix
* fixes atmosphere out-of-bounds error caused by mu that should be exactly 0 or 1, but numerically out-of-bounds.
### 2.3.47 - calculate_lnp bugfix
* fixes calculate_lnp to more robustly handle parameter matching for both the constrained and unconstrained case
* fixes default_binary constructor when overriding label of the 'binary' orbit
* fixes typo in ellc backend for the period==1 case
### 2.3.46 - rvperiodogram SB1 bugfix
* fixes handling of SB1s (RVs with a single component) in the rv_periodogram estimator
* adds checks to forbid zeros in dataset sigmas
### 2.3.45 - requivsumfrac constraint flipping bugfix
* fixes bug in flipping requivsumfrac constraint for requivratio when requiv of the secondary star is already constrained
### 2.3.44 - add_component/figure bugfix
* fixes bug in assigning parameter tags when passing function (as kind) to add_component or add_figure.
### 2.3.43 - RV SB1 residuals bugfix
* fixes silently ignoring component (while calculating residuals, chi2, etc) in an RV dataset in which times are provided, but observational RVs are not.
* improves error messages in calculate_residuals when resulting in no or more than one matches.
### 2.3.42 - RV plotting bugfix
* fixes plotting RVs when compute_times is provided instead of times. Previously would raise an error that the 'rvs' parameter could not be found as it is hidden in the dataset.
### 2.3.41 - estimators missing sigmas bugfix
* fixes handling of default sigmas within LC estimators when no sigmas are provided in the dataset.
### 2.3.40 - custom lnprobability bugfix
* fixes handling of `custom_lnprobability_callable` when passed to `run_solver`. Previously an error was raised stating it was not a supported keyword argument and was not passed to the script correctly during `export_solver`.
### 2.3.39 - optimizer progressbar and sample_from infinite failed samples bugfix
* fixes bug in increment size in progressbar for optimizers that appears to go past 100% before completion
* when running a forward model sampling from a distribution (or a solution), only allow 10 failed samples per draw before raising an error to prevent getting stuck in an infinite loop if the parameter space is unphysical
* add_compute(overwrite=True) now allows the existing tag to already exist in solutions (in addition to models)
### 2.3.38 - mvgaussian uncertainties bugfix
* updates distl to 0.3.1 which includes a fix to treat mvgaussian uncertainties from percentiles like other distribution types
* forces updating kepler's third law constraint when importing a bundle from before 2.3.25 bugfix
### 2.3.37 - add_distribution allow_multiple_matches bugfix
* fixes bug where tags on distributions were improperly applied when passing `allow_multiple_matches=True`
* disables run_compute progressbar within solvers
* fixes typo in description of progress parameter
### 2.3.36 - MPI passband directory bugfix
* fixes bug where running phoebe for the first time within MPI crashes due to each processor attempting to create the passband directory.
### 2.3.35 - rotstar bugfix
* bugfix in equation for converting rotation period/frequency to potential that affects the shapes of rapidly rotating stars with distortion_method of 'rotstar'.
* single stars: implements the missing constraint for requiv_max for single star systems.
### 2.3.34 - ebai and continue_from bugfix
* ebai: map phases onto -0.5,0.5 interval after computing phase-shift and sending to ebai
* emcee: cast fitted_uniqueids to list when applying wrap indices for continue_from
### 2.3.33 - constrained and multivariate priors bugfix
* fixes handling of multivariate distributions as priors
* run_compute sample_from: use serial mode when sample_num is 1
* run_compute when passing solution instead of sample_from, default to sample_num=1 if adopt_distributions is False
* export_solver: exclude unneeded distributions/solutions from the exported script to optimize filesize
* export_solver: adds (undocumented until 2.4 release) support for autocontinue
* export_compute: do not require explicitly passing compute if only one exists matching the filter
* calculate_lnp: include_constrained now defaults to True
### 2.3.32 - phoebe-server bugfix
* fixes version of flask-socketio dependency to remain compatible with desktop client
* ensures path and query string are cast to string
### 2.3.31 - SB1 with compute_times bugfix
* fixes fitting radial velocities where only one component has observations (SB1 system) and compute_times are provided.
* compute_residuals now returns an empty array when the corresponding times_array is empty, instead of raising an error
### 2.3.30 - ld_coeffs fitting bugfix
* all fitting ld_coeffs. Each coefficient is referenced by index and can be fit or have distributions attached independently. See [tutorial](http://phoebe-project.org/docs/latest/tutorials/fitting_ld_coeffs) for more details.
* also fixes support for [custom constraints](http://phoebe-project.org/docs/latest/tutorials/constraints_custom) which can be used to link ld_coeffs between datasets of the same passband, for example.
### 2.3.29 - adopt_solution bugfix
* do not require passing solution to adopt_solution (when adopting distributions) if only one solution exists
* fix distribution_overwrite_all not defined error
### 2.3.28 - solver checks bugfix
* excludes datasets not supported in fitting (mesh, orb, lp, etc) from forward-model within inverse solvers.
* run_checks_solver now checks for nans in dataset arrays.
### 2.3.27 - add_compute/solver overwrite bugfix
* fixes bug where passing overwrite to add_compute or add_solver raised an error if run_compute/run_solver already created a model/solution tagged with that same label.
### 2.3.26 - multiprocessing bugfix
* allows disabling multiprocessing (or lowering the number of available processors). Multiprocessing is used by default when not within MPI and when calling `run_compute` with `sample_from` or `run_solver` with solvers that support parallelization. Some installations of multiprocessing on Mac may cause issues, in which case you can now for PHOEBE to run in serial mode.
* this introduces new `phoebe.multiprocessing_off()`, `phoebe.multiprocessing_on()`, `phoebe.multiprocessing_get_nprocs()`, and `phoebe.multiprocessing_set_nprocs(n)` functions, but the default behavior remains unchanged.
### 2.3.25 - distribution propagation bugfix
* updates distl to 0.2.0 release which includes support for retaining simultaneous sampling between copies of the same underyling distribution, increased precision on latex formatting of uncertainties, and maintaining labels during unit conversion.
* fix propagating distl distribution objects through constraints to arbitrary depth.
* update Kepler's third law constraint to be distl-friendly (1+q becomes q+1).
* parameter.get_distribution: new argument `delta_if_none` to allow returning a delta function. This is now the default behavior from within b.get/plot_distribution_collection
* b.sample_distribution_collection: rename `N` argument to `sample_size` (but with backwards compatibility support for `N`).
* run_checks_solver now includes a warning if priors contain "around" distributions.
### 2.3.24 - emcee continue_from bugfix
* skip nwalkers vs number of parameters check when continue_from is set
* fallback on twigs when original uniqueids not available (when attempting to continue from a solution loaded into a new bundle, for example)
* wrapping rules for angle parameters fallback on median of last iteration in the available chain when uniqueids do not match as the initializing distribution likely does not exist anymore
### 2.3.23 - ellc flux-weighted RV vsini bugfix
* compute vsini from syncpar and pass to RV to enable Rossiter-McLaughlin effect when rv_method='flux-weighted'.
### 2.3.22 - trace plotting nanslice bugfix
* fix bug in plotting MCMC trace plots when any given chain is all nans.
### 2.3.21 - estimators phase-bin bugfix
* fix bug resulting in a nanslice error when phase_bin is enabled within estimators resulting in a single entry in any given bin. Now, sigmas will be ignored within the estimator in these cases with a warning in the logger.
### 2.3.20 - legacy passband bugfix
* now correctly maps passbands when using the legacy backend (only affects TESS and Tycho)
* falls back on PHOEBE atmospheres when needing to compute pblums internally for flux scaling prior to calling legacy backend
* from_legacy bugfix in parsing linear limb-darkening coefficients
* export_compute/export_solver: add commment warning against manually editing script
* fixes typo which raised error when rescaling passband-dependent mesh columns
### 2.3.19 - passbands update available datetime string parsing bugfix
* some systems fail to parse common datetime strings, resulting in inability to import phoebe when checking for available passband updates. This now prints and logs an error message, but does not prevent import.
* checking for available passband updates on import now correctly respects the PHOEBE_ENABLE_ONLINE_PASSBANDS environment variable.
* failed online passbands connection error messages are now only included in the log once (per processor) to avoid spamming the log (but are shown by default when manually calling phoebe.list_online_passbands).
### 2.3.18 - estimator.ebai with wide eclipse bugfix (attempt 2)
* actually fixes bug (see 2.3.13) that raised internal error when running ebai on an eclipse with width larger than 0.25 in phase. Note that these systems will still return nans as ebai is not well-suited to these systems, but the internal error will no longer occur.
### 2.3.17 - optimizer MPI bugfix
* enables parallelization (per-time or per-dataset) for optimizers.
### 2.3.16 - rv_geometry with different lengths bugfix
* fixes estimator.rv_geometry when primary and secondary component have different times.
### 2.3.15 - alternate backends with l3_frac and dataset-scaled bugfix
* fix bug in applying l3_frac within dataset scaling (pblum_mode='dataset-scaled') when using alternate backends.
### 2.3.14 - import_solution with uniqueid mismatch bugfix
* fix bug where falling back on twigs when importing a solution on a different bundle failed. It is still suggested to save the bundle and import solutions on the bundle used when calling export_solver.
### 2.3.13 - estimator.ebai with wide eclipse bugfix
* fix bug (but not really - see 2.3.18) that raised internal error when running ebai on an eclipse with width larger than 0.25 in phase. Note that these systems will still return nans as ebai is not well-suited to these systems, but the internal error will no longer occur.
### 2.3.12 - plot univariate distributions latex label bugfix
* fix bug in the latex labels on plots when converting from multivariate to univariate distributions.
### 2.3.11 - continue_from run_checks bugfix
* fix bug where run_checks raised an error for an empty init_from if continue_from was set.
### 2.3.10 - alternate backend atm bugfix
* fix bug where atm parameter was ignored during passband luminosity scaling while using an alternate backend, resulting in an atmosphere out-of-bounds error in some situations.
### 2.3.9 - online passbands bugfix
* stop attempting to query online passbands after three failed attempts to avoid significant time cost otherwise.
### 2.3.8 - plotting exclusion bugfix
* fix bug where datasets were excluded from plotting if not in any models
* fix syntax error in run_checks
### 2.3.7 - kwargs errors bugfix
* fix small bugs that could raise errors when passing some filter kwargs to `run_solver` or `sample_distribution_collection`
### 2.3.6 - GP run_checks bugfix
* fix check for presence of observational data during run_checks to only consider datasets with attached gaussian processes (GPs)
### 2.3.5 - lp run_checks bugfix
* fix length comparison of flux_densities and wavelengths during run_checks
### 2.3.4 - passband/extinction bugfix
* fixed Gordon extinction coefficient calculation in line with erratum http://dx.doi.org/10.1088/0004-637X/705/2/1320.
* added check to require updating affected-passbands (versions at tables.phoebe-project.org have been updated)
* removed duplicate Passband methods causing ld/ldint passband computations to fail
### 2.3.3 - latex representation bugfix
* fix the latex representation string for `fillout_factor`, `pot`, `pot_min`,
and `pot_max` parameters in a contact binary.
### 2.3.2 - manifest to include readme bugfix
* manually include README.md in MANIFEST.in to avoid build errors from pip
### 2.3.1 - pip install bugfix
* removes m2r as an (unlisted) build-dependency. m2r is only required to build the submission to submit to pypi, but is not required to install or run phoebe locally.
### 2.3.0 - inverse problem feature release
* Add support for inverse problem solvers, including "estimators", "optimizers", and "samplers"
* Add support for attaching distributions (as [distl](https://github.com/kecnry/distl) objects) to parameters, including priors and posteriors.
* Add support for [web and desktop clients](http://phoebe-project.org/clients) via a light-weight built in `phoebe-server`.
* Removed support for Python 2 (now requires Python 3.6+)
* Implement optional gaussian processes for light curves
* Implement phase-masking
* Added official support for [ellc](https://github.com/pmaxted/ellc) and [jktebop](https://www.astro.keele.ac.uk/jkt/codes/jktebop.html) alternate backends
* Per-component and per-dataset RV offsets
* Fixed phasing in time-dependent systems
* Distinction between anomalous and sidereal period in apsidal motion cases
* Extinction parameters moved from per-dataset to the system-level
* Added several new optional constraints
* Overhaul of the run_checks framework
* Updated scipy dependency to 1.7+
* Numerous small bugfixes and enhancements
### 2.2.2 - kwargs bugfix
* fix overriding mesh_init_phi as kwarg to run_compute
* fix pblum computation to not require irrad_method kwarg
* fix bundle representation to exclude hidden parameters
### 2.2.1 - g++/gcc version check bugfix
* Improves the detection of g++/gcc version to compare against requirements during setup.
### 2.2.0 - extinction feature release
* Add support for interstellar extinction/reddening.
* Support for Python 3.6+ in addition to Python 2.7+.
* Overhaul of limb-darkening with new ld_mode and ld_coeffs_source parameters.
* Overhaul of passband luminosity and flux scaling with new pblum_mode parameter, including support for maintaining color relations between multiple passbands.
* Ability to provide third light in either flux or percentage units, via the new l3_mode and l3_frac parameters.
* Support for computing a model at different times than the observations, via the new compute_times or computes_phases parameter.
* Transition from pickled to FITS passband files, with automatic detection for available updates. The tables can now also be accessed via tables.phoebe-project.org.
* DISABLED support for beaming/boosting.
* Allow flipping Kepler's thrid law constraint to solve for q.
* Require overwrite=True during add_* or run_* methods that would result in overwriting an existing label.
* Constraint for logg.
* Account for time-dependence (dpdt/dperdt) in t0 constraints.
### 2.1.17 - ignore fits passbands bugfix
* Future-proof to ignore for passband files with extensions other than ".pb"
which may be introduced in future versions of PHOEBE.
### 2.1.16 - eccentric/misaligned irradiation bugfix
* Fixes bug where irradiation was over-optimized and not recomputed as needed for
eccentric or misaligned orbits. Introduced in the optimizations in 2.1.6.
### 2.1.15 - spots bugfix
* Fixes 'long' location of spots on single stars.
* Fixes treatment of spots on secondary 'half' of contact systems.
* Fixes loading legacy files with a spot that has source of 0 due to a bug in legacy.
* Fixes overriding 'ntriangles' by passing keyword argument to run_compute.
### 2.1.14 - contacts inclination RVs bugfix
* Fixes the polar rotation axis for RVs in contact systems with non-90 inclinations
by re-enabling the alignment (pitch, yaw) constraints and enforcing them to be 0.
### 2.1.13 - constraint flip loop bugfix
* Fixes infinite loop when trying to flip esinw AND ecosw
* Adds ability to flip mass (Kepler's third law) to solve for q
* Fixes bug introduced in 2.1.9 in which out-of-limits constrained parameters in
an envelope were being raised before all constraints could resolve successfully.
### 2.1.12 - legacy ephemeris and kwargs checks bugfix
* Fixes applying t0 when importing legacy dataset which use phase.
* Fixes ignoring other compute options when running checks on kwargs during run_compute.
### 2.1.11 - legacy dataset import bugfix
* Fixes loading legacy datasets which use phase (by translating to time with the current ephemeris).
* Fixes loading legacy datasets with errors in magnitudes (by converting to errors in flux units).
* Fixes plotting RV datasets in which only one component has times (which is often the case when importing from a legacy file).
### 2.1.10 - ldint bugfix
* Removes ldint from the weights in the computations of RVs and LPs.
### 2.1.9 - limits bugfix
* Fixes a bug where parameter limits were not being checked and out-of-limits errors not raised correctly.
### 2.1.8 - mesh convergence bugfix
* Fixes a bug where certain parameters would cause the meshing algorithm to fail to converge. With this fix, up to 4 additional attempts will be made with random initial starting locations which should converge for most cases.
### 2.1.7 - comparison operators bugfix
* Fixes a bug where comparisons between Parameters/ParameterSets and values were returning nonsensical values.
* Comparing ParameterSets with any object will now return a NotImplementedError
* Comparing Parameters will compare against the value or quantity, with default units when applicable.
* Comparing equivalence between two Parameter objects will compare the uniqueids of the Parameters, NOT the values.
### 2.1.6 - optimization bugfix
* Fixes a bug where automatic detection of eclipses was failing to properly fallback on only detecting the horizon.
* Introduces several other significant optimizations, particularly in run_compute.
### 2.1.5 - single star get_orbits and line-profile bugfix
* Fixes a bug in hierarchy.get_orbits() for a single star hierarchy which resulted in an error being raised while computing line-profiles.
### 2.1.4 - freq constraint bugfix
* This fixes the inversion of the frequency constraint when flipping to solve for period.
### 2.1.3 - overflow error for semidetached systems bugfix
* Semi-detached systems could raise an error in the backend caused by the volume being slightly over the critical value when translating between requiv in solar units to volume in unitless/roche units. When this numerical discrepancy is detected, the critical value is now adopted and a warning is sent via the logger.
### 2.1.2 - constraints in solar units bugfix
* All constraints are now executed (by default) in solar units instead of SI. The Kepler's third law constraint (constraining mass by default) failed to have sufficient precision in SI, resulting in inaccurate masses. Furthermore, if the constraint was flipped, inaccurate values of sma could be passed to the backend, resulting in overflow in the semi-detached case.
* Bundles created before 2.1.2 and imported into 2.1.2+ will continue to use SI units for constraints and should function fine, but will not benefit from this update and will be incapable of changing the system hierarchy.
### 2.1.1 - MPI detection bugfix
* PHOEBE now detects if its within MPI on various different MPI installations (previously only worked for openmpi).
### 2.1.0 - misalignment feature release
* Add support for spin-orbit misalignment
* Add support for line profile (LP) datasets
* Switch parameterization from rpole/pot to requiv (including new semi-detached and contact constraints)
* Significant rewrite to plotting infrastructure to use [autofig](http://github.com/kecnry/autofig)
* Introduction of [nparray](http://github.com/kecnry/nparray) support within parameters
* Significant rewrite to mesh dataset infrastructure to allow choosing which columns are exposed
* Distinguish Roche (xyz) from Plane-of-Sky (uvw) coordinates
* Ability to toggle interactive constraints and interactive system checks independently
* Implementation of ParameterSet.tags and Parameter.tags
* General support for renaming tags/labels
* Expose pblum for contacts
* Expose per-component r and rprojs for contacts (used to be based on primary frame of reference only)
* Fix definition of vgamma (see note in 2.0.4 release below)
* Remove phshift parameter (see note in 2.0.3 release below)
* Permanently rename 'long' parameter for spots (see note in 2.0.2 release below)
* Numerous other minor bug fixes and improvements
### 2.0.11 - astropy version dependency bugfix
* Set astropy dependency to be >=1.0 and < 3.0 (as astropy 3.0 requires python 3)
### 2.0.10 - legacy import extraneous spaces bugfix
* Handle ignoring extraneous spaces when importing a PHOEBE legacy file.
### 2.0.9 - \_default Parameters bugfix
* Previously, after loading from a JSON file, new datasets were ignored by run_compute because the \_default Parameters (such as 'enabled') were not stored and loaded correctly. This has now been fixed.
* PS.datasets/components now hides the (somewhat confusing) \_default entries.
* unicode handling in filtering is improved to make sure the copying rules from JSON are followed correctly when loaded as unicodes instead of strings.
### 2.0.8 - contacts bugfix
* Remove unused Parameters from the Bundle
* Improvement in finding the boundary between the two components of a contact system
### 2.0.7 - legacy import/export bugfix
* Handle missing parameters when importing/exporting so that a Bundle exported to a PHOEBE legacy file can successfully be reimported
* Handle importing standard weight from datasets and converting to sigma
### 2.0.6 - unit conversion bugfix
* When requesting unit conversion from the frontend, astropy will now raise an error if the units are not compatible.
### 2.0.5 - semi-detached bugfix
* Fixed bug in which importing a PHOEBE legacy file of a semi-detached system failed to set the correct potential for the star filling its roche lobe. This only affects the importer itself.
* Implemented 'critical_rpole' and 'critical_potential' constraints.
### 2.0.4 - vgamma temporary bugfix
* The definition of vgamma in 2.0.* is in the direction of positive z rather than positive RV. For the sake of maintaining backwards-compatibility, this will remain unchanged for 2.0.* releases but will be fixed in the 2.1 release to be in the direction of positive RV. Until then, this bugfix handles converting to and from PHOEBE legacy correctly so that running the PHOEBE 2 and legacy backends gives consistent results.
### 2.0.3 - t0_supconj/t0_perpass bugfix
* Fixed constraint that defines the relation between t0_perpass and t0_supconj.
* Implement new 't0_ref' parameter which corresponds to legacy's 'HJD0'.
* Phasing now accepts t0='t0_supconj', 't0_perpass', 't0_ref', or a float representing the zero-point. The 'phshift' parameter will still be supported until 2.1, at which point it will be removed.
* Inclination parameter ('incl') is now limited to the [0-180] range to maintain conventions on superior conjunction and ascending/descending nodes.
* Fixed error message in ldint.
* Fixed the ability for multiple spots to be attached to the same component.
* Raise an error if attempting to attach spots to an unsupported component. Note: spots are currently not supported for contact systems.
### 2.0.2 - spots bugfix
* If using spots, it is important that you use 2.0.2 or later as there were several important bug fixes in this release.
* 'colon' parameter for spots has been renamed to 'long' (as its not actually colongitude). For 2.0.X releases, the 'colon' parameter will remain as a constrained parameter to avoid breaking any existing scripts, but will be removed with the 2.1.0 release.
* Features (including spots) have been fixed to correctly save and load to file.
* Corotation of spots is now enabled: if the 'syncpar' parameter is not unity, the spots will correctly corotate with the star. The location of the spot (defined by 'colat' and 'long' parameters) is defined such that the long=0 points to the companion star at t0. That coordinate system then rotates with the star according to 'syncpar'.
### 2.0.1 - ptfarea/pbspan bugfix
* Definition of flux and luminosity now use ptfarea instead of pbspan. In the bolometric case, these give the same quantity. This discrepancy was absorbed entirely by pblum scaling, so relative fluxes should not be affected, but the underlying absolute luminosities were incorrect for passbands (non-bolometric). In addition to under-the-hood changes, the exposed mesh column for 'pbspan' is now removed and replaced with 'ptfarea', but as this is not yet a documented column, should not cause backwards-compatibility issues.
### 2.0.0 - official release of PHOEBE 2.0
* PHOEBE 2.0 is not backwards compatible with PHOEBE 2.0-beta (although the interface has not changed appreciably) or with PHOEBE 2.0-alpha (substantial rewrite). Going forward with incremental releases, every effort will be put into backwards compatibility. The changes and important considerations of the new version will be detailed in the ChangeLog.
* If upgrading from PHOEBE 2.0-beta or PHOEBE 2.0-alpha, it is necessary to do a clean re-install (clear your build and installation directories), as the passband file format has changed and will not automatically reset unless these directories are manually cleared. Contact us with any problems.
QUESTIONS? SUGGESTIONS? CONCERNS?
---------------------------------
Contact us! Issues and feature requests should be submitted directly through GitHub's [issue tracker](https://github.com/phoebe-project/phoebe2/issues). Additional questions or feature requests should be submitted via [GitHub PHOEBE2 discussions](https://github.com/phoebe-project/phoebe2/discussions) or [GitHub PHOEBE2-UI discussions](https://github.com/phoebe-project/phoebe2-ui/discussions). We are eager to hear from you, so do not hesitate to [contact us](http://phoebe-project.org/help/contact)!
# PHOEBE build specification
#
# Refer to the following document for specification:
# https://packaging.python.org/en/latest/specifications/
#
# Key specification is given here:
# https://packaging.python.org/en/latest/specifications/declaring-project-metadata/#declaring-project-metadata
#
# Classifier strings are given here:
# https://pypi.org/classifiers/
[project]
name = "phoebe"
version = "2.4.19"
description = "PHOEBE: modeling and analysis of eclipsing binary stars"
readme = "README.md"
requires-python = ">=3.8"
license = { text = "GPL-3.0-or-later" }
authors = [
{ name = "Andrej Prša", email = "aprsa@villanova.edu" },
{ name = "Kyle Conroy", email = "kyle.conroy@villanova.edu" },
{ name = "Angela Kochoska", email = "angela.kochoska@villanova.edu" },
{ name = "Martin Horvat", email = "martin.horvat@fmf.uni-lj.si" },
{ name = "Dave Jones", email = "djones@iac.es" },
{ name = "Michael Abdul-Masih", email = "michael.abdul-masih@eso.org" },
{ name = "Bert Pablo", email = "hpablo@aavso.org" },
{ name = "Joe Giammarco", email = "giammarc@eastern.edu" },
]
maintainers = [
{ name = "Kyle Conroy", email = "kyle.conroy@villanova.edu" },
{ name = "Andrej Prša", email = "aprsa@villanova.edu" },
]
keywords = [
"phoebe",
"science",
"astronomy",
"astrophysics",
"binary stars",
"eclipsing binary stars",
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Education",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Natural Language :: English",
"Operating System :: POSIX :: Linux",
"Operating System :: MacOS",
"Programming Language :: Python :: 3",
"Programming Language :: C",
"Programming Language :: C++",
"Topic :: Education",
"Topic :: Scientific/Engineering :: Astronomy",
"Topic :: Scientific/Engineering :: Physics",
"Topic :: Scientific/Engineering :: Visualization",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Software Development :: User Interfaces"
]
dependencies = [
"numpy",
"scipy",
"astropy",
"pytest",
"tqdm",
"corner",
"requests",
"python-socketio",
"flask",
"flask-cors",
"flask-socketio",
"gevent",
"gevent-websocket",
]
[project.urls]
homepage = "http://phoebe-project.org"
repository = "https://github.com/phoebe-project/phoebe2"
documentation = "http://phoebe-project.org/docs"
[build-system]
requires = ["setuptools", "numpy", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
packages = [
"phoebe",
"phoebe.parameters",
"phoebe.parameters.solver",
"phoebe.parameters.figure",
"phoebe.frontend",
"phoebe.frontend.default_bundles",
"phoebe.constraints",
"phoebe.dynamics",
"phoebe.distortions",
"phoebe.algorithms",
"phoebe.atmospheres",
"phoebe.atmospheres.tables.extinction",
"phoebe.atmospheres.tables.passbands",
"phoebe.atmospheres.tables.wd",
"phoebe.lib",
"phoebe.backend",
"phoebe.solverbackends",
"phoebe.solverbackends.ebai",
"phoebe.solverbackends.knn",
"phoebe.utils",
"phoebe.helpers",
"phoebe.pool",
"phoebe.dependencies",
"phoebe.dependencies.autofig",
"phoebe.dependencies.nparray",
"phoebe.dependencies.distl",
"phoebe.dependencies.crimpl",
"phoebe.dependencies.unitsiau2015",
"phoebe.dependencies.ligeor",
"phoebe.dependencies.ligeor.ebai",
"phoebe.dependencies.ligeor.ebai.database",
"phoebe.dependencies.ligeor.eclipse",
"phoebe.dependencies.ligeor.models",
"phoebe.dependencies.ligeor.utils",
]
script-files = [
"client-server/phoebe-server",
"client-server/phoebe-autofig",
]
PHOEBE 2.4
------------------------
<p align="center"><a href="http://phoebe-project.org"><img src="./images/logo_blue.svg" alt="PHOEBE logo" width="160px" align="center"/></a></p>
<pre align="center" style="text-align:center; font-family:monospace; margin: 30px">
pip install phoebe
</pre>
<p align="center">
<a href="https://pypi.org/project/phoebe/"><img src="https://img.shields.io/badge/pip-phoebe-blue.svg"/></a>
<a href="http://phoebe-project.org/install"><img src="https://img.shields.io/badge/python-3.8+-blue.svg"/></a>
<a href="https://github.com/phoebe-project/phoebe2/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-GPL3-blue.svg"/></a>
<a href="https://github.com/phoebe-project/phoebe2/actions/workflows/on_pr.yml?query=branch%3Amaster"><img src="https://github.com/phoebe-project/phoebe2/actions/workflows/on_pr.yml/badge.svg?branch=master"/></a>
<a href="http://phoebe-project.org/docs/2.4"><img src="https://github.com/phoebe-project/phoebe2-docs/actions/workflows/build-docs.yml/badge.svg?branch=2.4"/></a>
<br/>
<a href="https://ui.adsabs.harvard.edu/abs/2016ApJS..227...29P"><img src="https://img.shields.io/badge/ApJS-Prsa+2016-lightgrey.svg"/></a>
<a href="https://ui.adsabs.harvard.edu/abs/2018ApJS..237...26H"><img src="https://img.shields.io/badge/ApJS-Horvat+2018-lightgrey.svg"/></a>
<a href="https://ui.adsabs.harvard.edu/abs/2020ApJS..247...63J"><img src="https://img.shields.io/badge/ApJS-Jones+2020-lightgrey.svg"/></a>
<a href="https://ui.adsabs.harvard.edu/abs/2020ApJS..250...34C/"><img src="https://img.shields.io/badge/ApJS-Conroy+2020-lightgrey.svg"/></a>
</p>
<p align="center">
<a href="http://phoebe-project.org"><img src="./images/console.gif" alt="Console Animation" width="600px" align="center"/></a>
</p>
INTRODUCTION
------------
PHOEBE stands for PHysics Of Eclipsing BinariEs. PHOEBE is pronounced [fee-bee](https://www.merriam-webster.com/dictionary/phoebe?pronunciation&lang=en_us&file=phoebe01.wav).
PHOEBE 2 is a rewrite of the original PHOEBE code. For most up-to-date information please refer to the PHOEBE project webpage: [http://phoebe-project.org](http://phoebe-project.org)
PHOEBE 2.0 is described by the release paper published in the Astrophysical Journal Supplement, [Prša et al. (2016, ApJS 227, 29)](https://ui.adsabs.harvard.edu/#abs/2016ApJS..227...29P). The addition of support for misaligned stars in version 2.1 is described in [Horvat et al. (2018, ApJS 237, 26)](https://ui.adsabs.harvard.edu/#abs/2018ApJS..237...26H). Interstellar extinction and support for Python 3 was added in version 2.2 and described in [Jones et al. (2020, ApJS 247, 63)](https://ui.adsabs.harvard.edu/abs/2020ApJS..247...63J). Inclusion of a general framework for solving the inverse problem as well as support for the [web and desktop clients](http://phoebe-project.org/clients) was introduced in version 2.3 as described in [Conroy et al. (2020, ApJS 250, 34)](https://ui.adsabs.harvard.edu/abs/2020ApJS..250...34C), which also removes support for Python 2. PHOEBE 2.4 improves on the geometry and ebai estimators, updates gaussian processes to use either scikit-learn or celerite2, and adds support for submitting compute or solver runs on external servers. These updates and fitting "best practices" will be discussed in Kochoska et al., in prep.
PHOEBE 2 is released under the [GNU General Public License v3](https://www.gnu.org/licenses/gpl-3.0.en.html).
The source code is available for download from the [PHOEBE project homepage](http://phoebe-project.org) and from [github](https://github.com/phoebe-project/phoebe2).
The development of PHOEBE 2 is funded in part by [NSF grant #1517474](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1517474), [NSF grant #1909109](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1909109) and [NASA 17-ADAP17-68](https://ui.adsabs.harvard.edu/abs/2017adap.prop...68P).
DOWNLOAD AND INSTALLATION
-------------------------
The easiest way to download and install PHOEBE 2 is by using pip (make sure you're using the correct command for pip that points to your python3 installation - if in doubt use something like `python3 -m pip install phoebe`):
pip install phoebe
To install it site-wide, prefix the `pip` command with `sudo` or run it as root.
To download the PHOEBE 2 source code, use git:
git clone https://github.com/phoebe-project/phoebe2.git
To install PHOEBE 2 from the source locally, go to the `phoebe2/` directory and issue:
pip install .
Note that as of the 2.4.16 release, PHOEBE requires Python 3.8 or later. For further details on pre-requisites consult the [PHOEBE project webpage](http://phoebe-project.org/install/2.4).
GETTING STARTED
---------------
PHOEBE 2 has a fairly steep learning curve. To start PHOEBE from python, issue:
python
>>> import phoebe
>>>
As of the 2.3 release, PHOEBE also includes a desktop and web client user-interface which is installed independently of the python package here. See the [phoebe2-ui repository](https://github.com/phoebe-project/phoebe2-ui) and [phoebe-project.org/clients](http://phoebe-project.org/clients) for more details.
To understand how to use PHOEBE, please consult the [tutorials, scripts and manuals](http://phoebe-project.org/docs/2.4/) hosted on the PHOEBE webpage.
CHANGELOG
----------
### 2.4.19
### 2.4.18
* Fix handling of spots in single star rotstar case where spots were not co-rotating properly [#1017]
* Fix misaligned spots bug that caused size of spot to change across the rotation period [#1017]
* Fix animation bug which prevented passing times as a numpy array [#1018]
* Fix continue_from support for scipy optimizers [#1041]
* Fix support for astropy 7.x units [#1043]
### 2.4.17
* Fix support for numpy 2.0. [#982]
### 2.4.16
* Fix handling of floating-point precision near the aligned case that used to result in error from libphoebe. [#965]
* Updates to phoebe-server to be compatible with modern browser requirements. [#959]
* Fix support for python 3.13, remove official support for python 3.7. [#968]
### 2.4.15
* Fix handling of include_times for RVs with compute_times/phases. [#889]
* GPs on models computed in phase-space will be properly computed based on residuals in time space. [#899]
* Fix units of requivfrac. [#894]
* Fix adopting mask_phases from lc_geometry. [#896]
* Fix population of wavelength array in load function for passbands. [#914]
* Temporarily cap numpy dependency < 2.0. [#930]
* Fix installation of phoebe-server CLI script to launch from UI. [#929]
* Fix passing compute to export_solver with features attached. [#922]
* sigmas_lnf: change handling of noise-nuissance parameter for RVs to no longer depend on the RV amplitude. [#901]
* Remove duplicated phoebe-server code. [#940]
* Fix python 3.12+ support by updating invalid escape sequences. [#948]
* Improved precision in calculation of constraints. [#945]
### 2.4.14
* Fix MPI off to not broadcast if never enabled
* Fix warning message in dynesty solver
* Fix multi-compute with enabled/disabled datasets
* Fix error message in compute_ld_coeffs
* Fix segfaults in macos-14
* Now requires C++14-compatible compiler
### 2.4.13
* optimization: dynamical RVs avoid unnecessary meshing
* run_checks no longer requires ck2004 atmosphere tables if no datasets use ck2004
* fix treatment of distance for alternate backends (ellc, jktebop)
### 2.4.12 - build system update
* upgrade the build system to pyproject.toml with setuptools as backend and pip as frontend.
* drop the dependency on the obsolete distutils module.
* swap nosetests for pytest.
* small build-related bugfixes throughout the code.
### 2.4.11
* fix jktebop backend handling of mass-ratio and eccentricity for RVs.
* bumps version requirements in pip for numpy, scipy, astropy.
* allows sma@star and asini@star to flip to solve for q
* fixes handling of spots on rotating single stars.
* fixes constraint migration for 2.3 -> 2.4
### 2.4.10
* fixes implementation of gravitational redshift.
* fixes an unitialized value problem in gradients resulting in nans for effective temperatures.
* minor updates to passband exporting to support upcoming 2.5 release on the passbands server.
* allows setting SelectParameter to an array or tuple (in addition to a list).
### 2.4.9 - asynchronous spots bugfix
* fixes bug introduced in 2.4.8 and ensures that temperatures are recomputed for spots when the star is rotating asynchronously.
### 2.4.8 - spots optimization bugfix
* spots no longer force the mesh to be recomputed at each timepoint.
* updates for numpy compatibility and wider test matrix.
### 2.4.7 - line profile bugfix
* fix bug where wavelength arrays that did not include the central wavelength were returning nans for fluxes.
### 2.4.6 - potential to requiv TypeError bugfix
* fix bug where libphoebe was incorrectly raising an error suggesting the potential was out of bounds.
### 2.4.5 - negative mass bugfix
* fix bug where mass could be set to a negative value causing constraints to resolve to nans.
### 2.4.4 - constraint flipping bugfix
* fix bug where flipping Kepler's third law constraint multiple times would fail.
* fix bug when flipping requivsumfrac and requivratio constraints.
### 2.4.3 - use_server with features bugfix
* fix typo that raised error when using use_server with features attached
* added new `addl_slurm_kwargs` parameter to pass any options to slurm scheduler
### 2.4.2 - l3 handling distance in absolute pblum_mode bugfix
* fix conversion between l3 and l3_frac to account for distance when pblum_mode
is absolute
* fix tagged phoebe version in cached bundles to avoid import warning
### 2.4.1 - solver filtering and plotting bugfix
* fix filtering error when not explicitly passing solver to run_solver
* fix exposing analytic model from lc geometry estimator
* fix phase-sorting when plotting solution from ebai estimator
### 2.4.0 - solver and gaussian process improvements release
* add support for differential evolution optimizer solver
* add support for differential corrections optimizer solver
* optimizers: ability to continue runs from previous solutions (for most optimizers)
* improvements to geometry and ebai estimators to use ligeor as a new built-in dependency
* gaussian processes now use celerite2 or scikit-learn instead of celerite
* emcee sampler: additional plotting styles to check for convergence, checks to ensure starting sample is physical, and added ability to continue a previous run from any arbitrary iteration in a previous run
* new support for running jobs on external servers via crimpl
* clarified distinction between chi2 and mle
### 2.3.63 - constraint feature bugfix
* fix bug where creating a custom constraint for parameters within features was not correctly identifying the constrained parameter and was raising an error when attempting to set the value of the constraining parameter.
### 2.3.62 - attach_job ferr bugfix
* fix bug where error file was not properly loaded when retrieving error from external job
### 2.3.61 - M1 compiler optimization bugfix
* remove compiler optimizations that are not portable to ARM architectures
### 2.3.60 - passband timestamp bugfix
* compare version strings instead of datetime to avoid some systems throwing an error when looking for passband updates.
* see also 2.3.13 release.
### 2.3.59 - extinction constraint bugfix
* fixes extinction constraint when flipping to solve for Av
### 2.3.58 - astropy 5.0 units bugfix
* fixes support for astropy 5.0 changes to unit physical types (see also 2.3.51).
* b.save now requires delayed and failed constraints to run before saving.
### 2.3.57 - remove inadvertent typo while sampling distributions
* introduced in 2.3.55
### 2.3.56 - setup without m2r bugfix
* fixes installation (on some machines) where m2r is not installed
### 2.3.55 - sample_distribution_collection index bugfix
* fixes handling distributions on array parameters within sample_distribution_collection and run_compute(sample_from).
### 2.3.54 - distribution bugfix
* updates `distl` to convert units with recent changes to astropy. See also the changes in 2.3.51 and 2.3.52.
* fixes median introduced in 2.3.52 to act on distribution object instead of just arrays.
### 2.3.53 - adopt_solution adopt_values bugfix
* adopting a solution with `adopt_values=True` for a sampler solver will now adopt the median from the samples rather than the mean, to be consistent with the central values reported by the distributions themselves.
### 2.3.52 - run_all_constraints support for array parameters bugfix
* fixes new run_all_constraints (new in 2.3.51) method to work on array parameters (compute_times/compute_phases).
### 2.3.51 - units physical type astropy update bugfix
* fixes parsing the physical type of a unit in latest releases of astropy. Without this fix, some constraints may fail to run.
* implements a new b.run_all_constraints, which is now automatically called when importing from a file in case any constraints were in the failed state.
### 2.3.50 - contact binary estimators bugfix
* rv_geometry: explicitly look for RVs attached to stars (not envelopes, which raised a lookup error).
* run_checks_solver: run compatibility checks between solver and hierarchies. Contact binaries are not supported by lc_geometry or ebai, single stars are not supported by lc_geometry, ebai, or rv_geometry.
### 2.3.49 - requivsumfrac flipping bugfix
* fix remaining cases for flipping requivsumfrac constraint (see 2.3.45 bugfix release for the partial fix for some, but not all, cases)
* migrate from Travis CI to GitHub actions for CI testing
### 2.3.48 - mu atm out-of-bounds bugfix
* fixes atmosphere out-of-bounds error caused by mu that should be exactly 0 or 1, but numerically out-of-bounds.
### 2.3.47 - calculate_lnp bugfix
* fixes calculate_lnp to more robustly handle parameter matching for both the constrained and unconstrained case
* fixes default_binary constructor when overriding label of the 'binary' orbit
* fixes typo in ellc backend for the period==1 case
### 2.3.46 - rvperiodogram SB1 bugfix
* fixes handling of SB1s (RVs with a single component) in the rv_periodogram estimator
* adds checks to forbid zeros in dataset sigmas
### 2.3.45 - requivsumfrac constraint flipping bugfix
* fixes bug in flipping requivsumfrac constraint for requivratio when requiv of the secondary star is already constrained
### 2.3.44 - add_component/figure bugfix
* fixes bug in assigning parameter tags when passing function (as kind) to add_component or add_figure.
### 2.3.43 - RV SB1 residuals bugfix
* fixes silently ignoring component (while calculating residuals, chi2, etc) in an RV dataset in which times are provided, but observational RVs are not.
* improves error messages in calculate_residuals when resulting in no or more than one matches.
### 2.3.42 - RV plotting bugfix
* fixes plotting RVs when compute_times is provided instead of times. Previously would raise an error that the 'rvs' parameter could not be found as it is hidden in the dataset.
### 2.3.41 - estimators missing sigmas bugfix
* fixes handling of default sigmas within LC estimators when no sigmas are provided in the dataset.
### 2.3.40 - custom lnprobability bugfix
* fixes handling of `custom_lnprobability_callable` when passed to `run_solver`. Previously an error was raised stating it was not a supported keyword argument and was not passed to the script correctly during `export_solver`.
### 2.3.39 - optimizer progressbar and sample_from infinite failed samples bugfix
* fixes bug in increment size in progressbar for optimizers that appears to go past 100% before completion
* when running a forward model sampling from a distribution (or a solution), only allow 10 failed samples per draw before raising an error to prevent getting stuck in an infinite loop if the parameter space is unphysical
* add_compute(overwrite=True) now allows the existing tag to already exist in solutions (in addition to models)
### 2.3.38 - mvgaussian uncertainties bugfix
* updates distl to 0.3.1 which includes a fix to treat mvgaussian uncertainties from percentiles like other distribution types
* forces updating kepler's third law constraint when importing a bundle from before 2.3.25 bugfix
### 2.3.37 - add_distribution allow_multiple_matches bugfix
* fixes bug where tags on distributions were improperly applied when passing `allow_multiple_matches=True`
* disables run_compute progressbar within solvers
* fixes typo in description of progress parameter
### 2.3.36 - MPI passband directory bugfix
* fixes bug where running phoebe for the first time within MPI crashes due to each processor attempting to create the passband directory.
### 2.3.35 - rotstar bugfix
* bugfix in equation for converting rotation period/frequency to potential that affects the shapes of rapidly rotating stars with distortion_method of 'rotstar'.
* single stars: implements the missing constraint for requiv_max for single star systems.
### 2.3.34 - ebai and continue_from bugfix
* ebai: map phases onto -0.5,0.5 interval after computing phase-shift and sending to ebai
* emcee: cast fitted_uniqueids to list when applying wrap indices for continue_from
### 2.3.33 - constrained and multivariate priors bugfix
* fixes handling of multivariate distributions as priors
* run_compute sample_from: use serial mode when sample_num is 1
* run_compute when passing solution instead of sample_from, default to sample_num=1 if adopt_distributions is False
* export_solver: exclude unneeded distributions/solutions from the exported script to optimize filesize
* export_solver: adds (undocumented until 2.4 release) support for autocontinue
* export_compute: do not require explicitly passing compute if only one exists matching the filter
* calculate_lnp: include_constrained now defaults to True
### 2.3.32 - phoebe-server bugfix
* fixes version of flask-socketio dependency to remain compatible with desktop client
* ensures path and query string are cast to string
### 2.3.31 - SB1 with compute_times bugfix
* fixes fitting radial velocities where only one component has observations (SB1 system) and compute_times are provided.
* compute_residuals now returns an empty array when the corresponding times_array is empty, instead of raising an error
### 2.3.30 - ld_coeffs fitting bugfix
* all fitting ld_coeffs. Each coefficient is referenced by index and can be fit or have distributions attached independently. See [tutorial](http://phoebe-project.org/docs/latest/tutorials/fitting_ld_coeffs) for more details.
* also fixes support for [custom constraints](http://phoebe-project.org/docs/latest/tutorials/constraints_custom) which can be used to link ld_coeffs between datasets of the same passband, for example.
### 2.3.29 - adopt_solution bugfix
* do not require passing solution to adopt_solution (when adopting distributions) if only one solution exists
* fix distribution_overwrite_all not defined error
### 2.3.28 - solver checks bugfix
* excludes datasets not supported in fitting (mesh, orb, lp, etc) from forward-model within inverse solvers.
* run_checks_solver now checks for nans in dataset arrays.
### 2.3.27 - add_compute/solver overwrite bugfix
* fixes bug where passing overwrite to add_compute or add_solver raised an error if run_compute/run_solver already created a model/solution tagged with that same label.
### 2.3.26 - multiprocessing bugfix
* allows disabling multiprocessing (or lowering the number of available processors). Multiprocessing is used by default when not within MPI and when calling `run_compute` with `sample_from` or `run_solver` with solvers that support parallelization. Some installations of multiprocessing on Mac may cause issues, in which case you can now for PHOEBE to run in serial mode.
* this introduces new `phoebe.multiprocessing_off()`, `phoebe.multiprocessing_on()`, `phoebe.multiprocessing_get_nprocs()`, and `phoebe.multiprocessing_set_nprocs(n)` functions, but the default behavior remains unchanged.
### 2.3.25 - distribution propagation bugfix
* updates distl to 0.2.0 release which includes support for retaining simultaneous sampling between copies of the same underyling distribution, increased precision on latex formatting of uncertainties, and maintaining labels during unit conversion.
* fix propagating distl distribution objects through constraints to arbitrary depth.
* update Kepler's third law constraint to be distl-friendly (1+q becomes q+1).
* parameter.get_distribution: new argument `delta_if_none` to allow returning a delta function. This is now the default behavior from within b.get/plot_distribution_collection
* b.sample_distribution_collection: rename `N` argument to `sample_size` (but with backwards compatibility support for `N`).
* run_checks_solver now includes a warning if priors contain "around" distributions.
### 2.3.24 - emcee continue_from bugfix
* skip nwalkers vs number of parameters check when continue_from is set
* fallback on twigs when original uniqueids not available (when attempting to continue from a solution loaded into a new bundle, for example)
* wrapping rules for angle parameters fallback on median of last iteration in the available chain when uniqueids do not match as the initializing distribution likely does not exist anymore
### 2.3.23 - ellc flux-weighted RV vsini bugfix
* compute vsini from syncpar and pass to RV to enable Rossiter-McLaughlin effect when rv_method='flux-weighted'.
### 2.3.22 - trace plotting nanslice bugfix
* fix bug in plotting MCMC trace plots when any given chain is all nans.
### 2.3.21 - estimators phase-bin bugfix
* fix bug resulting in a nanslice error when phase_bin is enabled within estimators resulting in a single entry in any given bin. Now, sigmas will be ignored within the estimator in these cases with a warning in the logger.
### 2.3.20 - legacy passband bugfix
* now correctly maps passbands when using the legacy backend (only affects TESS and Tycho)
* falls back on PHOEBE atmospheres when needing to compute pblums internally for flux scaling prior to calling legacy backend
* from_legacy bugfix in parsing linear limb-darkening coefficients
* export_compute/export_solver: add commment warning against manually editing script
* fixes typo which raised error when rescaling passband-dependent mesh columns
### 2.3.19 - passbands update available datetime string parsing bugfix
* some systems fail to parse common datetime strings, resulting in inability to import phoebe when checking for available passband updates. This now prints and logs an error message, but does not prevent import.
* checking for available passband updates on import now correctly respects the PHOEBE_ENABLE_ONLINE_PASSBANDS environment variable.
* failed online passbands connection error messages are now only included in the log once (per processor) to avoid spamming the log (but are shown by default when manually calling phoebe.list_online_passbands).
### 2.3.18 - estimator.ebai with wide eclipse bugfix (attempt 2)
* actually fixes bug (see 2.3.13) that raised internal error when running ebai on an eclipse with width larger than 0.25 in phase. Note that these systems will still return nans as ebai is not well-suited to these systems, but the internal error will no longer occur.
### 2.3.17 - optimizer MPI bugfix
* enables parallelization (per-time or per-dataset) for optimizers.
### 2.3.16 - rv_geometry with different lengths bugfix
* fixes estimator.rv_geometry when primary and secondary component have different times.
### 2.3.15 - alternate backends with l3_frac and dataset-scaled bugfix
* fix bug in applying l3_frac within dataset scaling (pblum_mode='dataset-scaled') when using alternate backends.
### 2.3.14 - import_solution with uniqueid mismatch bugfix
* fix bug where falling back on twigs when importing a solution on a different bundle failed. It is still suggested to save the bundle and import solutions on the bundle used when calling export_solver.
### 2.3.13 - estimator.ebai with wide eclipse bugfix
* fix bug (but not really - see 2.3.18) that raised internal error when running ebai on an eclipse with width larger than 0.25 in phase. Note that these systems will still return nans as ebai is not well-suited to these systems, but the internal error will no longer occur.
### 2.3.12 - plot univariate distributions latex label bugfix
* fix bug in the latex labels on plots when converting from multivariate to univariate distributions.
### 2.3.11 - continue_from run_checks bugfix
* fix bug where run_checks raised an error for an empty init_from if continue_from was set.
### 2.3.10 - alternate backend atm bugfix
* fix bug where atm parameter was ignored during passband luminosity scaling while using an alternate backend, resulting in an atmosphere out-of-bounds error in some situations.
### 2.3.9 - online passbands bugfix
* stop attempting to query online passbands after three failed attempts to avoid significant time cost otherwise.
### 2.3.8 - plotting exclusion bugfix
* fix bug where datasets were excluded from plotting if not in any models
* fix syntax error in run_checks
### 2.3.7 - kwargs errors bugfix
* fix small bugs that could raise errors when passing some filter kwargs to `run_solver` or `sample_distribution_collection`
### 2.3.6 - GP run_checks bugfix
* fix check for presence of observational data during run_checks to only consider datasets with attached gaussian processes (GPs)
### 2.3.5 - lp run_checks bugfix
* fix length comparison of flux_densities and wavelengths during run_checks
### 2.3.4 - passband/extinction bugfix
* fixed Gordon extinction coefficient calculation in line with erratum http://dx.doi.org/10.1088/0004-637X/705/2/1320.
* added check to require updating affected-passbands (versions at tables.phoebe-project.org have been updated)
* removed duplicate Passband methods causing ld/ldint passband computations to fail
### 2.3.3 - latex representation bugfix
* fix the latex representation string for `fillout_factor`, `pot`, `pot_min`,
and `pot_max` parameters in a contact binary.
### 2.3.2 - manifest to include readme bugfix
* manually include README.md in MANIFEST.in to avoid build errors from pip
### 2.3.1 - pip install bugfix
* removes m2r as an (unlisted) build-dependency. m2r is only required to build the submission to submit to pypi, but is not required to install or run phoebe locally.
### 2.3.0 - inverse problem feature release
* Add support for inverse problem solvers, including "estimators", "optimizers", and "samplers"
* Add support for attaching distributions (as [distl](https://github.com/kecnry/distl) objects) to parameters, including priors and posteriors.
* Add support for [web and desktop clients](http://phoebe-project.org/clients) via a light-weight built in `phoebe-server`.
* Removed support for Python 2 (now requires Python 3.6+)
* Implement optional gaussian processes for light curves
* Implement phase-masking
* Added official support for [ellc](https://github.com/pmaxted/ellc) and [jktebop](https://www.astro.keele.ac.uk/jkt/codes/jktebop.html) alternate backends
* Per-component and per-dataset RV offsets
* Fixed phasing in time-dependent systems
* Distinction between anomalous and sidereal period in apsidal motion cases
* Extinction parameters moved from per-dataset to the system-level
* Added several new optional constraints
* Overhaul of the run_checks framework
* Updated scipy dependency to 1.7+
* Numerous small bugfixes and enhancements
### 2.2.2 - kwargs bugfix
* fix overriding mesh_init_phi as kwarg to run_compute
* fix pblum computation to not require irrad_method kwarg
* fix bundle representation to exclude hidden parameters
### 2.2.1 - g++/gcc version check bugfix
* Improves the detection of g++/gcc version to compare against requirements during setup.
### 2.2.0 - extinction feature release
* Add support for interstellar extinction/reddening.
* Support for Python 3.6+ in addition to Python 2.7+.
* Overhaul of limb-darkening with new ld_mode and ld_coeffs_source parameters.
* Overhaul of passband luminosity and flux scaling with new pblum_mode parameter, including support for maintaining color relations between multiple passbands.
* Ability to provide third light in either flux or percentage units, via the new l3_mode and l3_frac parameters.
* Support for computing a model at different times than the observations, via the new compute_times or computes_phases parameter.
* Transition from pickled to FITS passband files, with automatic detection for available updates. The tables can now also be accessed via tables.phoebe-project.org.
* DISABLED support for beaming/boosting.
* Allow flipping Kepler's thrid law constraint to solve for q.
* Require overwrite=True during add_* or run_* methods that would result in overwriting an existing label.
* Constraint for logg.
* Account for time-dependence (dpdt/dperdt) in t0 constraints.
### 2.1.17 - ignore fits passbands bugfix
* Future-proof to ignore for passband files with extensions other than ".pb"
which may be introduced in future versions of PHOEBE.
### 2.1.16 - eccentric/misaligned irradiation bugfix
* Fixes bug where irradiation was over-optimized and not recomputed as needed for
eccentric or misaligned orbits. Introduced in the optimizations in 2.1.6.
### 2.1.15 - spots bugfix
* Fixes 'long' location of spots on single stars.
* Fixes treatment of spots on secondary 'half' of contact systems.
* Fixes loading legacy files with a spot that has source of 0 due to a bug in legacy.
* Fixes overriding 'ntriangles' by passing keyword argument to run_compute.
### 2.1.14 - contacts inclination RVs bugfix
* Fixes the polar rotation axis for RVs in contact systems with non-90 inclinations
by re-enabling the alignment (pitch, yaw) constraints and enforcing them to be 0.
### 2.1.13 - constraint flip loop bugfix
* Fixes infinite loop when trying to flip esinw AND ecosw
* Adds ability to flip mass (Kepler's third law) to solve for q
* Fixes bug introduced in 2.1.9 in which out-of-limits constrained parameters in
an envelope were being raised before all constraints could resolve successfully.
### 2.1.12 - legacy ephemeris and kwargs checks bugfix
* Fixes applying t0 when importing legacy dataset which use phase.
* Fixes ignoring other compute options when running checks on kwargs during run_compute.
### 2.1.11 - legacy dataset import bugfix
* Fixes loading legacy datasets which use phase (by translating to time with the current ephemeris).
* Fixes loading legacy datasets with errors in magnitudes (by converting to errors in flux units).
* Fixes plotting RV datasets in which only one component has times (which is often the case when importing from a legacy file).
### 2.1.10 - ldint bugfix
* Removes ldint from the weights in the computations of RVs and LPs.
### 2.1.9 - limits bugfix
* Fixes a bug where parameter limits were not being checked and out-of-limits errors not raised correctly.
### 2.1.8 - mesh convergence bugfix
* Fixes a bug where certain parameters would cause the meshing algorithm to fail to converge. With this fix, up to 4 additional attempts will be made with random initial starting locations which should converge for most cases.
### 2.1.7 - comparison operators bugfix
* Fixes a bug where comparisons between Parameters/ParameterSets and values were returning nonsensical values.
* Comparing ParameterSets with any object will now return a NotImplementedError
* Comparing Parameters will compare against the value or quantity, with default units when applicable.
* Comparing equivalence between two Parameter objects will compare the uniqueids of the Parameters, NOT the values.
### 2.1.6 - optimization bugfix
* Fixes a bug where automatic detection of eclipses was failing to properly fallback on only detecting the horizon.
* Introduces several other significant optimizations, particularly in run_compute.
### 2.1.5 - single star get_orbits and line-profile bugfix
* Fixes a bug in hierarchy.get_orbits() for a single star hierarchy which resulted in an error being raised while computing line-profiles.
### 2.1.4 - freq constraint bugfix
* This fixes the inversion of the frequency constraint when flipping to solve for period.
### 2.1.3 - overflow error for semidetached systems bugfix
* Semi-detached systems could raise an error in the backend caused by the volume being slightly over the critical value when translating between requiv in solar units to volume in unitless/roche units. When this numerical discrepancy is detected, the critical value is now adopted and a warning is sent via the logger.
### 2.1.2 - constraints in solar units bugfix
* All constraints are now executed (by default) in solar units instead of SI. The Kepler's third law constraint (constraining mass by default) failed to have sufficient precision in SI, resulting in inaccurate masses. Furthermore, if the constraint was flipped, inaccurate values of sma could be passed to the backend, resulting in overflow in the semi-detached case.
* Bundles created before 2.1.2 and imported into 2.1.2+ will continue to use SI units for constraints and should function fine, but will not benefit from this update and will be incapable of changing the system hierarchy.
### 2.1.1 - MPI detection bugfix
* PHOEBE now detects if its within MPI on various different MPI installations (previously only worked for openmpi).
### 2.1.0 - misalignment feature release
* Add support for spin-orbit misalignment
* Add support for line profile (LP) datasets
* Switch parameterization from rpole/pot to requiv (including new semi-detached and contact constraints)
* Significant rewrite to plotting infrastructure to use [autofig](http://github.com/kecnry/autofig)
* Introduction of [nparray](http://github.com/kecnry/nparray) support within parameters
* Significant rewrite to mesh dataset infrastructure to allow choosing which columns are exposed
* Distinguish Roche (xyz) from Plane-of-Sky (uvw) coordinates
* Ability to toggle interactive constraints and interactive system checks independently
* Implementation of ParameterSet.tags and Parameter.tags
* General support for renaming tags/labels
* Expose pblum for contacts
* Expose per-component r and rprojs for contacts (used to be based on primary frame of reference only)
* Fix definition of vgamma (see note in 2.0.4 release below)
* Remove phshift parameter (see note in 2.0.3 release below)
* Permanently rename 'long' parameter for spots (see note in 2.0.2 release below)
* Numerous other minor bug fixes and improvements
### 2.0.11 - astropy version dependency bugfix
* Set astropy dependency to be >=1.0 and < 3.0 (as astropy 3.0 requires python 3)
### 2.0.10 - legacy import extraneous spaces bugfix
* Handle ignoring extraneous spaces when importing a PHOEBE legacy file.
### 2.0.9 - \_default Parameters bugfix
* Previously, after loading from a JSON file, new datasets were ignored by run_compute because the \_default Parameters (such as 'enabled') were not stored and loaded correctly. This has now been fixed.
* PS.datasets/components now hides the (somewhat confusing) \_default entries.
* unicode handling in filtering is improved to make sure the copying rules from JSON are followed correctly when loaded as unicodes instead of strings.
### 2.0.8 - contacts bugfix
* Remove unused Parameters from the Bundle
* Improvement in finding the boundary between the two components of a contact system
### 2.0.7 - legacy import/export bugfix
* Handle missing parameters when importing/exporting so that a Bundle exported to a PHOEBE legacy file can successfully be reimported
* Handle importing standard weight from datasets and converting to sigma
### 2.0.6 - unit conversion bugfix
* When requesting unit conversion from the frontend, astropy will now raise an error if the units are not compatible.
### 2.0.5 - semi-detached bugfix
* Fixed bug in which importing a PHOEBE legacy file of a semi-detached system failed to set the correct potential for the star filling its roche lobe. This only affects the importer itself.
* Implemented 'critical_rpole' and 'critical_potential' constraints.
### 2.0.4 - vgamma temporary bugfix
* The definition of vgamma in 2.0.* is in the direction of positive z rather than positive RV. For the sake of maintaining backwards-compatibility, this will remain unchanged for 2.0.* releases but will be fixed in the 2.1 release to be in the direction of positive RV. Until then, this bugfix handles converting to and from PHOEBE legacy correctly so that running the PHOEBE 2 and legacy backends gives consistent results.
### 2.0.3 - t0_supconj/t0_perpass bugfix
* Fixed constraint that defines the relation between t0_perpass and t0_supconj.
* Implement new 't0_ref' parameter which corresponds to legacy's 'HJD0'.
* Phasing now accepts t0='t0_supconj', 't0_perpass', 't0_ref', or a float representing the zero-point. The 'phshift' parameter will still be supported until 2.1, at which point it will be removed.
* Inclination parameter ('incl') is now limited to the [0-180] range to maintain conventions on superior conjunction and ascending/descending nodes.
* Fixed error message in ldint.
* Fixed the ability for multiple spots to be attached to the same component.
* Raise an error if attempting to attach spots to an unsupported component. Note: spots are currently not supported for contact systems.
### 2.0.2 - spots bugfix
* If using spots, it is important that you use 2.0.2 or later as there were several important bug fixes in this release.
* 'colon' parameter for spots has been renamed to 'long' (as its not actually colongitude). For 2.0.X releases, the 'colon' parameter will remain as a constrained parameter to avoid breaking any existing scripts, but will be removed with the 2.1.0 release.
* Features (including spots) have been fixed to correctly save and load to file.
* Corotation of spots is now enabled: if the 'syncpar' parameter is not unity, the spots will correctly corotate with the star. The location of the spot (defined by 'colat' and 'long' parameters) is defined such that the long=0 points to the companion star at t0. That coordinate system then rotates with the star according to 'syncpar'.
### 2.0.1 - ptfarea/pbspan bugfix
* Definition of flux and luminosity now use ptfarea instead of pbspan. In the bolometric case, these give the same quantity. This discrepancy was absorbed entirely by pblum scaling, so relative fluxes should not be affected, but the underlying absolute luminosities were incorrect for passbands (non-bolometric). In addition to under-the-hood changes, the exposed mesh column for 'pbspan' is now removed and replaced with 'ptfarea', but as this is not yet a documented column, should not cause backwards-compatibility issues.
### 2.0.0 - official release of PHOEBE 2.0
* PHOEBE 2.0 is not backwards compatible with PHOEBE 2.0-beta (although the interface has not changed appreciably) or with PHOEBE 2.0-alpha (substantial rewrite). Going forward with incremental releases, every effort will be put into backwards compatibility. The changes and important considerations of the new version will be detailed in the ChangeLog.
* If upgrading from PHOEBE 2.0-beta or PHOEBE 2.0-alpha, it is necessary to do a clean re-install (clear your build and installation directories), as the passband file format has changed and will not automatically reset unless these directories are manually cleared. Contact us with any problems.
QUESTIONS? SUGGESTIONS? CONCERNS?
---------------------------------
Contact us! Issues and feature requests should be submitted directly through GitHub's [issue tracker](https://github.com/phoebe-project/phoebe2/issues). Additional questions or feature requests should be submitted via [GitHub PHOEBE2 discussions](https://github.com/phoebe-project/phoebe2/discussions) or [GitHub PHOEBE2-UI discussions](https://github.com/phoebe-project/phoebe2-ui/discussions). We are eager to hear from you, so do not hesitate to [contact us](http://phoebe-project.org/help/contact)!
[egg_info]
tag_build =
tag_date = 0
from setuptools import Extension, setup
import numpy
ext_modules = [
Extension(
'libphoebe',
sources=['phoebe/lib/libphoebe.cpp'],
language='c++',
extra_compile_args=["-std=c++14"],
include_dirs=[numpy.get_include()]
),
Extension(
'phoebe.algorithms.ceclipse',
sources=['phoebe/algorithms/ceclipse.cpp'],
language='c++',
include_dirs=[numpy.get_include()]
),
]
setup(
ext_modules=ext_modules,
)
+1
-1

@@ -20,3 +20,3 @@ """

__version__ = '2.4.18'
__version__ = '2.4.19'

@@ -23,0 +23,0 @@ import os as _os

Sorry, the diff of this file is too big to display

GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
{one line to give the program's name and a brief idea of what it does.}
Copyright (C) {year} {name of author}
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
{project} Copyright (C) {year} {fullname}
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
Metadata-Version: 2.4
Name: phoebe
Version: 2.4.18
Summary: PHOEBE: modeling and analysis of eclipsing binary stars
Author-email: Andrej Prša <aprsa@villanova.edu>, Kyle Conroy <kyle.conroy@villanova.edu>, Angela Kochoska <angela.kochoska@villanova.edu>, Martin Horvat <martin.horvat@fmf.uni-lj.si>, Dave Jones <djones@iac.es>, Michael Abdul-Masih <michael.abdul-masih@eso.org>, Bert Pablo <hpablo@aavso.org>, Joe Giammarco <giammarc@eastern.edu>
Maintainer-email: Kyle Conroy <kyle.conroy@villanova.edu>, Andrej Prša <aprsa@villanova.edu>
License: GPL-3.0-or-later
Project-URL: homepage, http://phoebe-project.org
Project-URL: repository, https://github.com/phoebe-project/phoebe2
Project-URL: documentation, http://phoebe-project.org/docs
Keywords: phoebe,science,astronomy,astrophysics,binary stars,eclipsing binary stars
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: C
Classifier: Programming Language :: C++
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: User Interfaces
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: astropy
Requires-Dist: pytest
Requires-Dist: tqdm
Requires-Dist: corner
Requires-Dist: requests
Requires-Dist: python-socketio
Requires-Dist: flask
Requires-Dist: flask-cors
Requires-Dist: flask-socketio
Requires-Dist: gevent
Requires-Dist: gevent-websocket
Dynamic: license-file
PHOEBE 2.4
------------------------
<p align="center"><a href="http://phoebe-project.org"><img src="./images/logo_blue.svg" alt="PHOEBE logo" width="160px" align="center"/></a></p>
<pre align="center" style="text-align:center; font-family:monospace; margin: 30px">
pip install phoebe
</pre>
<p align="center">
<a href="https://pypi.org/project/phoebe/"><img src="https://img.shields.io/badge/pip-phoebe-blue.svg"/></a>
<a href="http://phoebe-project.org/install"><img src="https://img.shields.io/badge/python-3.8+-blue.svg"/></a>
<a href="https://github.com/phoebe-project/phoebe2/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-GPL3-blue.svg"/></a>
<a href="https://github.com/phoebe-project/phoebe2/actions/workflows/on_pr.yml?query=branch%3Amaster"><img src="https://github.com/phoebe-project/phoebe2/actions/workflows/on_pr.yml/badge.svg?branch=master"/></a>
<a href="http://phoebe-project.org/docs/2.4"><img src="https://github.com/phoebe-project/phoebe2-docs/actions/workflows/build-docs.yml/badge.svg?branch=2.4"/></a>
<br/>
<a href="https://ui.adsabs.harvard.edu/abs/2016ApJS..227...29P"><img src="https://img.shields.io/badge/ApJS-Prsa+2016-lightgrey.svg"/></a>
<a href="https://ui.adsabs.harvard.edu/abs/2018ApJS..237...26H"><img src="https://img.shields.io/badge/ApJS-Horvat+2018-lightgrey.svg"/></a>
<a href="https://ui.adsabs.harvard.edu/abs/2020ApJS..247...63J"><img src="https://img.shields.io/badge/ApJS-Jones+2020-lightgrey.svg"/></a>
<a href="https://ui.adsabs.harvard.edu/abs/2020ApJS..250...34C/"><img src="https://img.shields.io/badge/ApJS-Conroy+2020-lightgrey.svg"/></a>
</p>
<p align="center">
<a href="http://phoebe-project.org"><img src="./images/console.gif" alt="Console Animation" width="600px" align="center"/></a>
</p>
INTRODUCTION
------------
PHOEBE stands for PHysics Of Eclipsing BinariEs. PHOEBE is pronounced [fee-bee](https://www.merriam-webster.com/dictionary/phoebe?pronunciation&lang=en_us&file=phoebe01.wav).
PHOEBE 2 is a rewrite of the original PHOEBE code. For most up-to-date information please refer to the PHOEBE project webpage: [http://phoebe-project.org](http://phoebe-project.org)
PHOEBE 2.0 is described by the release paper published in the Astrophysical Journal Supplement, [Prša et al. (2016, ApJS 227, 29)](https://ui.adsabs.harvard.edu/#abs/2016ApJS..227...29P). The addition of support for misaligned stars in version 2.1 is described in [Horvat et al. (2018, ApJS 237, 26)](https://ui.adsabs.harvard.edu/#abs/2018ApJS..237...26H). Interstellar extinction and support for Python 3 was added in version 2.2 and described in [Jones et al. (2020, ApJS 247, 63)](https://ui.adsabs.harvard.edu/abs/2020ApJS..247...63J). Inclusion of a general framework for solving the inverse problem as well as support for the [web and desktop clients](http://phoebe-project.org/clients) was introduced in version 2.3 as described in [Conroy et al. (2020, ApJS 250, 34)](https://ui.adsabs.harvard.edu/abs/2020ApJS..250...34C), which also removes support for Python 2. PHOEBE 2.4 improves on the geometry and ebai estimators, updates gaussian processes to use either scikit-learn or celerite2, and adds support for submitting compute or solver runs on external servers. These updates and fitting "best practices" will be discussed in Kochoska et al., in prep.
PHOEBE 2 is released under the [GNU General Public License v3](https://www.gnu.org/licenses/gpl-3.0.en.html).
The source code is available for download from the [PHOEBE project homepage](http://phoebe-project.org) and from [github](https://github.com/phoebe-project/phoebe2).
The development of PHOEBE 2 is funded in part by [NSF grant #1517474](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1517474), [NSF grant #1909109](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1909109) and [NASA 17-ADAP17-68](https://ui.adsabs.harvard.edu/abs/2017adap.prop...68P).
DOWNLOAD AND INSTALLATION
-------------------------
The easiest way to download and install PHOEBE 2 is by using pip (make sure you're using the correct command for pip that points to your python3 installation - if in doubt use something like `python3 -m pip install phoebe`):
pip install phoebe
To install it site-wide, prefix the `pip` command with `sudo` or run it as root.
To download the PHOEBE 2 source code, use git:
git clone https://github.com/phoebe-project/phoebe2.git
To install PHOEBE 2 from the source locally, go to the `phoebe2/` directory and issue:
pip install .
Note that as of the 2.4.16 release, PHOEBE requires Python 3.8 or later. For further details on pre-requisites consult the [PHOEBE project webpage](http://phoebe-project.org/install/2.4).
GETTING STARTED
---------------
PHOEBE 2 has a fairly steep learning curve. To start PHOEBE from python, issue:
python
>>> import phoebe
>>>
As of the 2.3 release, PHOEBE also includes a desktop and web client user-interface which is installed independently of the python package here. See the [phoebe2-ui repository](https://github.com/phoebe-project/phoebe2-ui) and [phoebe-project.org/clients](http://phoebe-project.org/clients) for more details.
To understand how to use PHOEBE, please consult the [tutorials, scripts and manuals](http://phoebe-project.org/docs/2.4/) hosted on the PHOEBE webpage.
CHANGELOG
----------
### 2.4.18
* Fix handling of spots in single star rotstar case where spots were not co-rotating properly [#1017]
* Fix misaligned spots bug that caused size of spot to change across the rotation period [#1017]
* Fix animation bug which prevented passing times as a numpy array [#1018]
* Fix continue_from support for scipy optimizers [#1041]
* Fix support for astropy 7.x units [#1043]
### 2.4.17
* Fix support for numpy 2.0. [#982]
### 2.4.16
* Fix handling of floating-point precision near the aligned case that used to result in error from libphoebe. [#965]
* Updates to phoebe-server to be compatible with modern browser requirements. [#959]
* Fix support for python 3.13, remove official support for python 3.7. [#968]
### 2.4.15
* Fix handling of include_times for RVs with compute_times/phases. [#889]
* GPs on models computed in phase-space will be properly computed based on residuals in time space. [#899]
* Fix units of requivfrac. [#894]
* Fix adopting mask_phases from lc_geometry. [#896]
* Fix population of wavelength array in load function for passbands. [#914]
* Temporarily cap numpy dependency < 2.0. [#930]
* Fix installation of phoebe-server CLI script to launch from UI. [#929]
* Fix passing compute to export_solver with features attached. [#922]
* sigmas_lnf: change handling of noise-nuissance parameter for RVs to no longer depend on the RV amplitude. [#901]
* Remove duplicated phoebe-server code. [#940]
* Fix python 3.12+ support by updating invalid escape sequences. [#948]
* Improved precision in calculation of constraints. [#945]
### 2.4.14
* Fix MPI off to not broadcast if never enabled
* Fix warning message in dynesty solver
* Fix multi-compute with enabled/disabled datasets
* Fix error message in compute_ld_coeffs
* Fix segfaults in macos-14
* Now requires C++14-compatible compiler
### 2.4.13
* optimization: dynamical RVs avoid unnecessary meshing
* run_checks no longer requires ck2004 atmosphere tables if no datasets use ck2004
* fix treatment of distance for alternate backends (ellc, jktebop)
### 2.4.12 - build system update
* upgrade the build system to pyproject.toml with setuptools as backend and pip as frontend.
* drop the dependency on the obsolete distutils module.
* swap nosetests for pytest.
* small build-related bugfixes throughout the code.
### 2.4.11
* fix jktebop backend handling of mass-ratio and eccentricity for RVs.
* bumps version requirements in pip for numpy, scipy, astropy.
* allows sma@star and asini@star to flip to solve for q
* fixes handling of spots on rotating single stars.
* fixes constraint migration for 2.3 -> 2.4
### 2.4.10
* fixes implementation of gravitational redshift.
* fixes an unitialized value problem in gradients resulting in nans for effective temperatures.
* minor updates to passband exporting to support upcoming 2.5 release on the passbands server.
* allows setting SelectParameter to an array or tuple (in addition to a list).
### 2.4.9 - asynchronous spots bugfix
* fixes bug introduced in 2.4.8 and ensures that temperatures are recomputed for spots when the star is rotating asynchronously.
### 2.4.8 - spots optimization bugfix
* spots no longer force the mesh to be recomputed at each timepoint.
* updates for numpy compatibility and wider test matrix.
### 2.4.7 - line profile bugfix
* fix bug where wavelength arrays that did not include the central wavelength were returning nans for fluxes.
### 2.4.6 - potential to requiv TypeError bugfix
* fix bug where libphoebe was incorrectly raising an error suggesting the potential was out of bounds.
### 2.4.5 - negative mass bugfix
* fix bug where mass could be set to a negative value causing constraints to resolve to nans.
### 2.4.4 - constraint flipping bugfix
* fix bug where flipping Kepler's third law constraint multiple times would fail.
* fix bug when flipping requivsumfrac and requivratio constraints.
### 2.4.3 - use_server with features bugfix
* fix typo that raised error when using use_server with features attached
* added new `addl_slurm_kwargs` parameter to pass any options to slurm scheduler
### 2.4.2 - l3 handling distance in absolute pblum_mode bugfix
* fix conversion between l3 and l3_frac to account for distance when pblum_mode
is absolute
* fix tagged phoebe version in cached bundles to avoid import warning
### 2.4.1 - solver filtering and plotting bugfix
* fix filtering error when not explicitly passing solver to run_solver
* fix exposing analytic model from lc geometry estimator
* fix phase-sorting when plotting solution from ebai estimator
### 2.4.0 - solver and gaussian process improvements release
* add support for differential evolution optimizer solver
* add support for differential corrections optimizer solver
* optimizers: ability to continue runs from previous solutions (for most optimizers)
* improvements to geometry and ebai estimators to use ligeor as a new built-in dependency
* gaussian processes now use celerite2 or scikit-learn instead of celerite
* emcee sampler: additional plotting styles to check for convergence, checks to ensure starting sample is physical, and added ability to continue a previous run from any arbitrary iteration in a previous run
* new support for running jobs on external servers via crimpl
* clarified distinction between chi2 and mle
### 2.3.63 - constraint feature bugfix
* fix bug where creating a custom constraint for parameters within features was not correctly identifying the constrained parameter and was raising an error when attempting to set the value of the constraining parameter.
### 2.3.62 - attach_job ferr bugfix
* fix bug where error file was not properly loaded when retrieving error from external job
### 2.3.61 - M1 compiler optimization bugfix
* remove compiler optimizations that are not portable to ARM architectures
### 2.3.60 - passband timestamp bugfix
* compare version strings instead of datetime to avoid some systems throwing an error when looking for passband updates.
* see also 2.3.13 release.
### 2.3.59 - extinction constraint bugfix
* fixes extinction constraint when flipping to solve for Av
### 2.3.58 - astropy 5.0 units bugfix
* fixes support for astropy 5.0 changes to unit physical types (see also 2.3.51).
* b.save now requires delayed and failed constraints to run before saving.
### 2.3.57 - remove inadvertent typo while sampling distributions
* introduced in 2.3.55
### 2.3.56 - setup without m2r bugfix
* fixes installation (on some machines) where m2r is not installed
### 2.3.55 - sample_distribution_collection index bugfix
* fixes handling distributions on array parameters within sample_distribution_collection and run_compute(sample_from).
### 2.3.54 - distribution bugfix
* updates `distl` to convert units with recent changes to astropy. See also the changes in 2.3.51 and 2.3.52.
* fixes median introduced in 2.3.52 to act on distribution object instead of just arrays.
### 2.3.53 - adopt_solution adopt_values bugfix
* adopting a solution with `adopt_values=True` for a sampler solver will now adopt the median from the samples rather than the mean, to be consistent with the central values reported by the distributions themselves.
### 2.3.52 - run_all_constraints support for array parameters bugfix
* fixes new run_all_constraints (new in 2.3.51) method to work on array parameters (compute_times/compute_phases).
### 2.3.51 - units physical type astropy update bugfix
* fixes parsing the physical type of a unit in latest releases of astropy. Without this fix, some constraints may fail to run.
* implements a new b.run_all_constraints, which is now automatically called when importing from a file in case any constraints were in the failed state.
### 2.3.50 - contact binary estimators bugfix
* rv_geometry: explicitly look for RVs attached to stars (not envelopes, which raised a lookup error).
* run_checks_solver: run compatibility checks between solver and hierarchies. Contact binaries are not supported by lc_geometry or ebai, single stars are not supported by lc_geometry, ebai, or rv_geometry.
### 2.3.49 - requivsumfrac flipping bugfix
* fix remaining cases for flipping requivsumfrac constraint (see 2.3.45 bugfix release for the partial fix for some, but not all, cases)
* migrate from Travis CI to GitHub actions for CI testing
### 2.3.48 - mu atm out-of-bounds bugfix
* fixes atmosphere out-of-bounds error caused by mu that should be exactly 0 or 1, but numerically out-of-bounds.
### 2.3.47 - calculate_lnp bugfix
* fixes calculate_lnp to more robustly handle parameter matching for both the constrained and unconstrained case
* fixes default_binary constructor when overriding label of the 'binary' orbit
* fixes typo in ellc backend for the period==1 case
### 2.3.46 - rvperiodogram SB1 bugfix
* fixes handling of SB1s (RVs with a single component) in the rv_periodogram estimator
* adds checks to forbid zeros in dataset sigmas
### 2.3.45 - requivsumfrac constraint flipping bugfix
* fixes bug in flipping requivsumfrac constraint for requivratio when requiv of the secondary star is already constrained
### 2.3.44 - add_component/figure bugfix
* fixes bug in assigning parameter tags when passing function (as kind) to add_component or add_figure.
### 2.3.43 - RV SB1 residuals bugfix
* fixes silently ignoring component (while calculating residuals, chi2, etc) in an RV dataset in which times are provided, but observational RVs are not.
* improves error messages in calculate_residuals when resulting in no or more than one matches.
### 2.3.42 - RV plotting bugfix
* fixes plotting RVs when compute_times is provided instead of times. Previously would raise an error that the 'rvs' parameter could not be found as it is hidden in the dataset.
### 2.3.41 - estimators missing sigmas bugfix
* fixes handling of default sigmas within LC estimators when no sigmas are provided in the dataset.
### 2.3.40 - custom lnprobability bugfix
* fixes handling of `custom_lnprobability_callable` when passed to `run_solver`. Previously an error was raised stating it was not a supported keyword argument and was not passed to the script correctly during `export_solver`.
### 2.3.39 - optimizer progressbar and sample_from infinite failed samples bugfix
* fixes bug in increment size in progressbar for optimizers that appears to go past 100% before completion
* when running a forward model sampling from a distribution (or a solution), only allow 10 failed samples per draw before raising an error to prevent getting stuck in an infinite loop if the parameter space is unphysical
* add_compute(overwrite=True) now allows the existing tag to already exist in solutions (in addition to models)
### 2.3.38 - mvgaussian uncertainties bugfix
* updates distl to 0.3.1 which includes a fix to treat mvgaussian uncertainties from percentiles like other distribution types
* forces updating kepler's third law constraint when importing a bundle from before 2.3.25 bugfix
### 2.3.37 - add_distribution allow_multiple_matches bugfix
* fixes bug where tags on distributions were improperly applied when passing `allow_multiple_matches=True`
* disables run_compute progressbar within solvers
* fixes typo in description of progress parameter
### 2.3.36 - MPI passband directory bugfix
* fixes bug where running phoebe for the first time within MPI crashes due to each processor attempting to create the passband directory.
### 2.3.35 - rotstar bugfix
* bugfix in equation for converting rotation period/frequency to potential that affects the shapes of rapidly rotating stars with distortion_method of 'rotstar'.
* single stars: implements the missing constraint for requiv_max for single star systems.
### 2.3.34 - ebai and continue_from bugfix
* ebai: map phases onto -0.5,0.5 interval after computing phase-shift and sending to ebai
* emcee: cast fitted_uniqueids to list when applying wrap indices for continue_from
### 2.3.33 - constrained and multivariate priors bugfix
* fixes handling of multivariate distributions as priors
* run_compute sample_from: use serial mode when sample_num is 1
* run_compute when passing solution instead of sample_from, default to sample_num=1 if adopt_distributions is False
* export_solver: exclude unneeded distributions/solutions from the exported script to optimize filesize
* export_solver: adds (undocumented until 2.4 release) support for autocontinue
* export_compute: do not require explicitly passing compute if only one exists matching the filter
* calculate_lnp: include_constrained now defaults to True
### 2.3.32 - phoebe-server bugfix
* fixes version of flask-socketio dependency to remain compatible with desktop client
* ensures path and query string are cast to string
### 2.3.31 - SB1 with compute_times bugfix
* fixes fitting radial velocities where only one component has observations (SB1 system) and compute_times are provided.
* compute_residuals now returns an empty array when the corresponding times_array is empty, instead of raising an error
### 2.3.30 - ld_coeffs fitting bugfix
* all fitting ld_coeffs. Each coefficient is referenced by index and can be fit or have distributions attached independently. See [tutorial](http://phoebe-project.org/docs/latest/tutorials/fitting_ld_coeffs) for more details.
* also fixes support for [custom constraints](http://phoebe-project.org/docs/latest/tutorials/constraints_custom) which can be used to link ld_coeffs between datasets of the same passband, for example.
### 2.3.29 - adopt_solution bugfix
* do not require passing solution to adopt_solution (when adopting distributions) if only one solution exists
* fix distribution_overwrite_all not defined error
### 2.3.28 - solver checks bugfix
* excludes datasets not supported in fitting (mesh, orb, lp, etc) from forward-model within inverse solvers.
* run_checks_solver now checks for nans in dataset arrays.
### 2.3.27 - add_compute/solver overwrite bugfix
* fixes bug where passing overwrite to add_compute or add_solver raised an error if run_compute/run_solver already created a model/solution tagged with that same label.
### 2.3.26 - multiprocessing bugfix
* allows disabling multiprocessing (or lowering the number of available processors). Multiprocessing is used by default when not within MPI and when calling `run_compute` with `sample_from` or `run_solver` with solvers that support parallelization. Some installations of multiprocessing on Mac may cause issues, in which case you can now for PHOEBE to run in serial mode.
* this introduces new `phoebe.multiprocessing_off()`, `phoebe.multiprocessing_on()`, `phoebe.multiprocessing_get_nprocs()`, and `phoebe.multiprocessing_set_nprocs(n)` functions, but the default behavior remains unchanged.
### 2.3.25 - distribution propagation bugfix
* updates distl to 0.2.0 release which includes support for retaining simultaneous sampling between copies of the same underyling distribution, increased precision on latex formatting of uncertainties, and maintaining labels during unit conversion.
* fix propagating distl distribution objects through constraints to arbitrary depth.
* update Kepler's third law constraint to be distl-friendly (1+q becomes q+1).
* parameter.get_distribution: new argument `delta_if_none` to allow returning a delta function. This is now the default behavior from within b.get/plot_distribution_collection
* b.sample_distribution_collection: rename `N` argument to `sample_size` (but with backwards compatibility support for `N`).
* run_checks_solver now includes a warning if priors contain "around" distributions.
### 2.3.24 - emcee continue_from bugfix
* skip nwalkers vs number of parameters check when continue_from is set
* fallback on twigs when original uniqueids not available (when attempting to continue from a solution loaded into a new bundle, for example)
* wrapping rules for angle parameters fallback on median of last iteration in the available chain when uniqueids do not match as the initializing distribution likely does not exist anymore
### 2.3.23 - ellc flux-weighted RV vsini bugfix
* compute vsini from syncpar and pass to RV to enable Rossiter-McLaughlin effect when rv_method='flux-weighted'.
### 2.3.22 - trace plotting nanslice bugfix
* fix bug in plotting MCMC trace plots when any given chain is all nans.
### 2.3.21 - estimators phase-bin bugfix
* fix bug resulting in a nanslice error when phase_bin is enabled within estimators resulting in a single entry in any given bin. Now, sigmas will be ignored within the estimator in these cases with a warning in the logger.
### 2.3.20 - legacy passband bugfix
* now correctly maps passbands when using the legacy backend (only affects TESS and Tycho)
* falls back on PHOEBE atmospheres when needing to compute pblums internally for flux scaling prior to calling legacy backend
* from_legacy bugfix in parsing linear limb-darkening coefficients
* export_compute/export_solver: add commment warning against manually editing script
* fixes typo which raised error when rescaling passband-dependent mesh columns
### 2.3.19 - passbands update available datetime string parsing bugfix
* some systems fail to parse common datetime strings, resulting in inability to import phoebe when checking for available passband updates. This now prints and logs an error message, but does not prevent import.
* checking for available passband updates on import now correctly respects the PHOEBE_ENABLE_ONLINE_PASSBANDS environment variable.
* failed online passbands connection error messages are now only included in the log once (per processor) to avoid spamming the log (but are shown by default when manually calling phoebe.list_online_passbands).
### 2.3.18 - estimator.ebai with wide eclipse bugfix (attempt 2)
* actually fixes bug (see 2.3.13) that raised internal error when running ebai on an eclipse with width larger than 0.25 in phase. Note that these systems will still return nans as ebai is not well-suited to these systems, but the internal error will no longer occur.
### 2.3.17 - optimizer MPI bugfix
* enables parallelization (per-time or per-dataset) for optimizers.
### 2.3.16 - rv_geometry with different lengths bugfix
* fixes estimator.rv_geometry when primary and secondary component have different times.
### 2.3.15 - alternate backends with l3_frac and dataset-scaled bugfix
* fix bug in applying l3_frac within dataset scaling (pblum_mode='dataset-scaled') when using alternate backends.
### 2.3.14 - import_solution with uniqueid mismatch bugfix
* fix bug where falling back on twigs when importing a solution on a different bundle failed. It is still suggested to save the bundle and import solutions on the bundle used when calling export_solver.
### 2.3.13 - estimator.ebai with wide eclipse bugfix
* fix bug (but not really - see 2.3.18) that raised internal error when running ebai on an eclipse with width larger than 0.25 in phase. Note that these systems will still return nans as ebai is not well-suited to these systems, but the internal error will no longer occur.
### 2.3.12 - plot univariate distributions latex label bugfix
* fix bug in the latex labels on plots when converting from multivariate to univariate distributions.
### 2.3.11 - continue_from run_checks bugfix
* fix bug where run_checks raised an error for an empty init_from if continue_from was set.
### 2.3.10 - alternate backend atm bugfix
* fix bug where atm parameter was ignored during passband luminosity scaling while using an alternate backend, resulting in an atmosphere out-of-bounds error in some situations.
### 2.3.9 - online passbands bugfix
* stop attempting to query online passbands after three failed attempts to avoid significant time cost otherwise.
### 2.3.8 - plotting exclusion bugfix
* fix bug where datasets were excluded from plotting if not in any models
* fix syntax error in run_checks
### 2.3.7 - kwargs errors bugfix
* fix small bugs that could raise errors when passing some filter kwargs to `run_solver` or `sample_distribution_collection`
### 2.3.6 - GP run_checks bugfix
* fix check for presence of observational data during run_checks to only consider datasets with attached gaussian processes (GPs)
### 2.3.5 - lp run_checks bugfix
* fix length comparison of flux_densities and wavelengths during run_checks
### 2.3.4 - passband/extinction bugfix
* fixed Gordon extinction coefficient calculation in line with erratum http://dx.doi.org/10.1088/0004-637X/705/2/1320.
* added check to require updating affected-passbands (versions at tables.phoebe-project.org have been updated)
* removed duplicate Passband methods causing ld/ldint passband computations to fail
### 2.3.3 - latex representation bugfix
* fix the latex representation string for `fillout_factor`, `pot`, `pot_min`,
and `pot_max` parameters in a contact binary.
### 2.3.2 - manifest to include readme bugfix
* manually include README.md in MANIFEST.in to avoid build errors from pip
### 2.3.1 - pip install bugfix
* removes m2r as an (unlisted) build-dependency. m2r is only required to build the submission to submit to pypi, but is not required to install or run phoebe locally.
### 2.3.0 - inverse problem feature release
* Add support for inverse problem solvers, including "estimators", "optimizers", and "samplers"
* Add support for attaching distributions (as [distl](https://github.com/kecnry/distl) objects) to parameters, including priors and posteriors.
* Add support for [web and desktop clients](http://phoebe-project.org/clients) via a light-weight built in `phoebe-server`.
* Removed support for Python 2 (now requires Python 3.6+)
* Implement optional gaussian processes for light curves
* Implement phase-masking
* Added official support for [ellc](https://github.com/pmaxted/ellc) and [jktebop](https://www.astro.keele.ac.uk/jkt/codes/jktebop.html) alternate backends
* Per-component and per-dataset RV offsets
* Fixed phasing in time-dependent systems
* Distinction between anomalous and sidereal period in apsidal motion cases
* Extinction parameters moved from per-dataset to the system-level
* Added several new optional constraints
* Overhaul of the run_checks framework
* Updated scipy dependency to 1.7+
* Numerous small bugfixes and enhancements
### 2.2.2 - kwargs bugfix
* fix overriding mesh_init_phi as kwarg to run_compute
* fix pblum computation to not require irrad_method kwarg
* fix bundle representation to exclude hidden parameters
### 2.2.1 - g++/gcc version check bugfix
* Improves the detection of g++/gcc version to compare against requirements during setup.
### 2.2.0 - extinction feature release
* Add support for interstellar extinction/reddening.
* Support for Python 3.6+ in addition to Python 2.7+.
* Overhaul of limb-darkening with new ld_mode and ld_coeffs_source parameters.
* Overhaul of passband luminosity and flux scaling with new pblum_mode parameter, including support for maintaining color relations between multiple passbands.
* Ability to provide third light in either flux or percentage units, via the new l3_mode and l3_frac parameters.
* Support for computing a model at different times than the observations, via the new compute_times or computes_phases parameter.
* Transition from pickled to FITS passband files, with automatic detection for available updates. The tables can now also be accessed via tables.phoebe-project.org.
* DISABLED support for beaming/boosting.
* Allow flipping Kepler's thrid law constraint to solve for q.
* Require overwrite=True during add_* or run_* methods that would result in overwriting an existing label.
* Constraint for logg.
* Account for time-dependence (dpdt/dperdt) in t0 constraints.
### 2.1.17 - ignore fits passbands bugfix
* Future-proof to ignore for passband files with extensions other than ".pb"
which may be introduced in future versions of PHOEBE.
### 2.1.16 - eccentric/misaligned irradiation bugfix
* Fixes bug where irradiation was over-optimized and not recomputed as needed for
eccentric or misaligned orbits. Introduced in the optimizations in 2.1.6.
### 2.1.15 - spots bugfix
* Fixes 'long' location of spots on single stars.
* Fixes treatment of spots on secondary 'half' of contact systems.
* Fixes loading legacy files with a spot that has source of 0 due to a bug in legacy.
* Fixes overriding 'ntriangles' by passing keyword argument to run_compute.
### 2.1.14 - contacts inclination RVs bugfix
* Fixes the polar rotation axis for RVs in contact systems with non-90 inclinations
by re-enabling the alignment (pitch, yaw) constraints and enforcing them to be 0.
### 2.1.13 - constraint flip loop bugfix
* Fixes infinite loop when trying to flip esinw AND ecosw
* Adds ability to flip mass (Kepler's third law) to solve for q
* Fixes bug introduced in 2.1.9 in which out-of-limits constrained parameters in
an envelope were being raised before all constraints could resolve successfully.
### 2.1.12 - legacy ephemeris and kwargs checks bugfix
* Fixes applying t0 when importing legacy dataset which use phase.
* Fixes ignoring other compute options when running checks on kwargs during run_compute.
### 2.1.11 - legacy dataset import bugfix
* Fixes loading legacy datasets which use phase (by translating to time with the current ephemeris).
* Fixes loading legacy datasets with errors in magnitudes (by converting to errors in flux units).
* Fixes plotting RV datasets in which only one component has times (which is often the case when importing from a legacy file).
### 2.1.10 - ldint bugfix
* Removes ldint from the weights in the computations of RVs and LPs.
### 2.1.9 - limits bugfix
* Fixes a bug where parameter limits were not being checked and out-of-limits errors not raised correctly.
### 2.1.8 - mesh convergence bugfix
* Fixes a bug where certain parameters would cause the meshing algorithm to fail to converge. With this fix, up to 4 additional attempts will be made with random initial starting locations which should converge for most cases.
### 2.1.7 - comparison operators bugfix
* Fixes a bug where comparisons between Parameters/ParameterSets and values were returning nonsensical values.
* Comparing ParameterSets with any object will now return a NotImplementedError
* Comparing Parameters will compare against the value or quantity, with default units when applicable.
* Comparing equivalence between two Parameter objects will compare the uniqueids of the Parameters, NOT the values.
### 2.1.6 - optimization bugfix
* Fixes a bug where automatic detection of eclipses was failing to properly fallback on only detecting the horizon.
* Introduces several other significant optimizations, particularly in run_compute.
### 2.1.5 - single star get_orbits and line-profile bugfix
* Fixes a bug in hierarchy.get_orbits() for a single star hierarchy which resulted in an error being raised while computing line-profiles.
### 2.1.4 - freq constraint bugfix
* This fixes the inversion of the frequency constraint when flipping to solve for period.
### 2.1.3 - overflow error for semidetached systems bugfix
* Semi-detached systems could raise an error in the backend caused by the volume being slightly over the critical value when translating between requiv in solar units to volume in unitless/roche units. When this numerical discrepancy is detected, the critical value is now adopted and a warning is sent via the logger.
### 2.1.2 - constraints in solar units bugfix
* All constraints are now executed (by default) in solar units instead of SI. The Kepler's third law constraint (constraining mass by default) failed to have sufficient precision in SI, resulting in inaccurate masses. Furthermore, if the constraint was flipped, inaccurate values of sma could be passed to the backend, resulting in overflow in the semi-detached case.
* Bundles created before 2.1.2 and imported into 2.1.2+ will continue to use SI units for constraints and should function fine, but will not benefit from this update and will be incapable of changing the system hierarchy.
### 2.1.1 - MPI detection bugfix
* PHOEBE now detects if its within MPI on various different MPI installations (previously only worked for openmpi).
### 2.1.0 - misalignment feature release
* Add support for spin-orbit misalignment
* Add support for line profile (LP) datasets
* Switch parameterization from rpole/pot to requiv (including new semi-detached and contact constraints)
* Significant rewrite to plotting infrastructure to use [autofig](http://github.com/kecnry/autofig)
* Introduction of [nparray](http://github.com/kecnry/nparray) support within parameters
* Significant rewrite to mesh dataset infrastructure to allow choosing which columns are exposed
* Distinguish Roche (xyz) from Plane-of-Sky (uvw) coordinates
* Ability to toggle interactive constraints and interactive system checks independently
* Implementation of ParameterSet.tags and Parameter.tags
* General support for renaming tags/labels
* Expose pblum for contacts
* Expose per-component r and rprojs for contacts (used to be based on primary frame of reference only)
* Fix definition of vgamma (see note in 2.0.4 release below)
* Remove phshift parameter (see note in 2.0.3 release below)
* Permanently rename 'long' parameter for spots (see note in 2.0.2 release below)
* Numerous other minor bug fixes and improvements
### 2.0.11 - astropy version dependency bugfix
* Set astropy dependency to be >=1.0 and < 3.0 (as astropy 3.0 requires python 3)
### 2.0.10 - legacy import extraneous spaces bugfix
* Handle ignoring extraneous spaces when importing a PHOEBE legacy file.
### 2.0.9 - \_default Parameters bugfix
* Previously, after loading from a JSON file, new datasets were ignored by run_compute because the \_default Parameters (such as 'enabled') were not stored and loaded correctly. This has now been fixed.
* PS.datasets/components now hides the (somewhat confusing) \_default entries.
* unicode handling in filtering is improved to make sure the copying rules from JSON are followed correctly when loaded as unicodes instead of strings.
### 2.0.8 - contacts bugfix
* Remove unused Parameters from the Bundle
* Improvement in finding the boundary between the two components of a contact system
### 2.0.7 - legacy import/export bugfix
* Handle missing parameters when importing/exporting so that a Bundle exported to a PHOEBE legacy file can successfully be reimported
* Handle importing standard weight from datasets and converting to sigma
### 2.0.6 - unit conversion bugfix
* When requesting unit conversion from the frontend, astropy will now raise an error if the units are not compatible.
### 2.0.5 - semi-detached bugfix
* Fixed bug in which importing a PHOEBE legacy file of a semi-detached system failed to set the correct potential for the star filling its roche lobe. This only affects the importer itself.
* Implemented 'critical_rpole' and 'critical_potential' constraints.
### 2.0.4 - vgamma temporary bugfix
* The definition of vgamma in 2.0.* is in the direction of positive z rather than positive RV. For the sake of maintaining backwards-compatibility, this will remain unchanged for 2.0.* releases but will be fixed in the 2.1 release to be in the direction of positive RV. Until then, this bugfix handles converting to and from PHOEBE legacy correctly so that running the PHOEBE 2 and legacy backends gives consistent results.
### 2.0.3 - t0_supconj/t0_perpass bugfix
* Fixed constraint that defines the relation between t0_perpass and t0_supconj.
* Implement new 't0_ref' parameter which corresponds to legacy's 'HJD0'.
* Phasing now accepts t0='t0_supconj', 't0_perpass', 't0_ref', or a float representing the zero-point. The 'phshift' parameter will still be supported until 2.1, at which point it will be removed.
* Inclination parameter ('incl') is now limited to the [0-180] range to maintain conventions on superior conjunction and ascending/descending nodes.
* Fixed error message in ldint.
* Fixed the ability for multiple spots to be attached to the same component.
* Raise an error if attempting to attach spots to an unsupported component. Note: spots are currently not supported for contact systems.
### 2.0.2 - spots bugfix
* If using spots, it is important that you use 2.0.2 or later as there were several important bug fixes in this release.
* 'colon' parameter for spots has been renamed to 'long' (as its not actually colongitude). For 2.0.X releases, the 'colon' parameter will remain as a constrained parameter to avoid breaking any existing scripts, but will be removed with the 2.1.0 release.
* Features (including spots) have been fixed to correctly save and load to file.
* Corotation of spots is now enabled: if the 'syncpar' parameter is not unity, the spots will correctly corotate with the star. The location of the spot (defined by 'colat' and 'long' parameters) is defined such that the long=0 points to the companion star at t0. That coordinate system then rotates with the star according to 'syncpar'.
### 2.0.1 - ptfarea/pbspan bugfix
* Definition of flux and luminosity now use ptfarea instead of pbspan. In the bolometric case, these give the same quantity. This discrepancy was absorbed entirely by pblum scaling, so relative fluxes should not be affected, but the underlying absolute luminosities were incorrect for passbands (non-bolometric). In addition to under-the-hood changes, the exposed mesh column for 'pbspan' is now removed and replaced with 'ptfarea', but as this is not yet a documented column, should not cause backwards-compatibility issues.
### 2.0.0 - official release of PHOEBE 2.0
* PHOEBE 2.0 is not backwards compatible with PHOEBE 2.0-beta (although the interface has not changed appreciably) or with PHOEBE 2.0-alpha (substantial rewrite). Going forward with incremental releases, every effort will be put into backwards compatibility. The changes and important considerations of the new version will be detailed in the ChangeLog.
* If upgrading from PHOEBE 2.0-beta or PHOEBE 2.0-alpha, it is necessary to do a clean re-install (clear your build and installation directories), as the passband file format has changed and will not automatically reset unless these directories are manually cleared. Contact us with any problems.
QUESTIONS? SUGGESTIONS? CONCERNS?
---------------------------------
Contact us! Issues and feature requests should be submitted directly through GitHub's [issue tracker](https://github.com/phoebe-project/phoebe2/issues). Additional questions or feature requests should be submitted via [GitHub PHOEBE2 discussions](https://github.com/phoebe-project/phoebe2/discussions) or [GitHub PHOEBE2-UI discussions](https://github.com/phoebe-project/phoebe2-ui/discussions). We are eager to hear from you, so do not hesitate to [contact us](http://phoebe-project.org/help/contact)!
libphoebe.cpython-310-darwin.so,sha256=4mHLjymFf_JEO3vizAZpJ20C8D_3O-0TypmT7PDBeM8,982832
phoebe-2.4.18.dist-info/RECORD,,
phoebe-2.4.18.dist-info/WHEEL,sha256=SQ0RWtyPnHPLqVWH_Tib5lCSw2Mp1jiRR5LTh7CkGzY,110
phoebe-2.4.18.dist-info/top_level.txt,sha256=JHRa2X8ws0lTFSJdAW2b6_ncAoxESAVFLCKkDqwUT_A,17
phoebe-2.4.18.dist-info/METADATA,sha256=1JtMxjtbRDk7XBXxmJ2JZzmDmFWzJhCF3HD0N7hoUto,42347
phoebe-2.4.18.dist-info/licenses/LICENSE.md,sha256=WJ7YI-moTFb-uVrFjnzzhGJrnL9P2iqQe8NuED3hutI,35141
phoebe-2.4.18.data/scripts/phoebe-server,sha256=fPpAqfX5xjlgFMPqxJK-FacIC63afusP5k4rbaRVqlM,80960
phoebe-2.4.18.data/scripts/phoebe-autofig,sha256=fNKgf9m-z5zIl7FtEaWMeveYDkueWpNbKtrDcXhXCWQ,184
phoebe/__init__.py,sha256=mPQ8e4Tyoo6D3HnkQImu-os4H9zGJ-RdgGEIA3RX-ms,38831
phoebe/dynamics/keplerian.py,sha256=dDtudWEhuZvpcPj8XG3p7oiCCFnujkIngliIvxeO8tQ,19039
phoebe/dynamics/nbody.py,sha256=3zyXESnDnYLz9Xp7hXRlNXGrBD-ihoBdLetyDfN8MZI,21675
phoebe/dynamics/__init__.py,sha256=Ze2apK8KhtMbxW88XAAK-M_o7bFe1hs8wCeDpCmoU_M,1601
phoebe/frontend/bundle.py,sha256=X9YDXoDimG0qt1Wcv5agEkBSSNnlEXtRc8EcyZiJzW4,764626
phoebe/frontend/io.py,sha256=cweOHM27VpNdJyHx5OKJqheiDrnmtu-4EaVlTkIvqF8,76385
phoebe/frontend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
phoebe/frontend/tabcomplete.py,sha256=dg5vyXt_QzMSMwki3SXuoBX12WyyRvXHC2no_65xhBc,6013
phoebe/frontend/default_bundles/default_binary.bundle,sha256=J91Ugdl6bHblf2pmdQ014cHU3fozhUOx73u-wD6NIko,58435
phoebe/frontend/default_bundles/default_contact_binary.bundle,sha256=7Iw6VRHPA5AkRBl0q-HopZk3lM_K1LApgrOjfQhu8rg,63984
phoebe/frontend/default_bundles/default_star.bundle,sha256=gtKVLdIpKOAES2b3t3YmkgXyJqdhyojnnLHuRH2R9HQ,26497
phoebe/frontend/default_bundles/create_default_bundles.py,sha256=VAD8FMsPZnfjE12Qj2ZUOCfTDc7VrmqFtyO9Lp3HE5o,508
phoebe/constraints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
phoebe/constraints/builtin.py,sha256=DRBcL88U8k4TYXIMkaG_7ReuBXd_x88EY9EHNyFw92Y,11723
phoebe/constraints/expression.py,sha256=KZQKnGeWJvF_kViCP5_XG3fknoNuZ2dAA4OcbBUfMfg,5095
phoebe/algorithms/ceclipse.cpp,sha256=PHUjZpACob7_iJeJvWWobLqQ02MSZqfzASu2WbtTfLg,21286
phoebe/algorithms/interp_nDgrid.py,sha256=60e3fI5JmG8awxVIhYmfGqjccAW0rWyhq8Wuf70kZrU,5086
phoebe/algorithms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
phoebe/algorithms/ceclipse.cpython-310-darwin.so,sha256=wiM4k-h_9bvVKAbImTyGHPEAuz5QieXaswbV_fZg4gE,40472
phoebe/dependencies/__init__.py,sha256=q67b5pB5_c4dn8aYqrQwyvlHWVwkAhG8SdWQWU2TfRE,337
phoebe/dependencies/unitsiau2015/__init__.py,sha256=rxbTzKXTH1TQU_We2AQWG4YBgjL2Lukn7PAc-8TxN5Q,4470
phoebe/dependencies/nparray/__init__.py,sha256=XP9-BpfYwHey02T8gDGDrCajzEMf_YfhHyIGo4U2hXo,13939
phoebe/dependencies/nparray/nparray.py,sha256=ej24b559TQBOQtZskQ-g3qq1DwUqyu25tHCbMgv4Y7c,40603
phoebe/dependencies/distl/__init__.py,sha256=Bv6dgLwcIPjCm8Mun-iQGgMcClLmI8pUOlg561wgbgc,21080
phoebe/dependencies/distl/stats_custom.py,sha256=i78shw1iLBJ_2jSQlnRd08cSBKLjiyqlfM33z_ChZ68,5356
phoebe/dependencies/distl/distl.py,sha256=Rgksb3iO-TB5OYNFm6TOEizZhxG0XhTO5drsxWYZaXg,330724
phoebe/dependencies/crimpl/localthread.py,sha256=uYiiowZRtEqbyQrB2DkCIEHehtuvZ3IBNRC47C5nUJs,19425
phoebe/dependencies/crimpl/remoteslurm.py,sha256=e_OzmJhzFMxhcMZ0tpqLdnDG1vR2xtdvOCiA81EDg3E,27912
phoebe/dependencies/crimpl/__init__.py,sha256=tO0JcM6k9VvjUZP-uwBXDWg0Av3Si5rB9a6UkSiHVK4,1819
phoebe/dependencies/crimpl/common.py,sha256=NiMHpKL9bss10m58l5vViWEW8TgaWLVUZr87VMhnG9g,33670
phoebe/dependencies/crimpl/remotethread.py,sha256=UHZlvvEedFa6nfYgm2OE41dannyivIcsdpXh_sbcoR8,19846
phoebe/dependencies/ligeor/__init__.py,sha256=ijtVxp7X3z5TJm4qwAy9tj5eOug55oYROMbbBK9gPzc,65
phoebe/dependencies/ligeor/eclipse/eb_params.py,sha256=fMS1DMooc4yQOMRDS_HbcRK3CzqyRgjQxAHksmd-2Hc,9041
phoebe/dependencies/ligeor/eclipse/__init__.py,sha256=0QJFK9wUG7PthbunfsoeYWGzMXJ24SuY4CE04_wAHtU,24
phoebe/dependencies/ligeor/utils/__init__.py,sha256=9RqHXCfAV2a15F6FnNfNBqlqqNKmN0EUTfAV7yO7S0o,75
phoebe/dependencies/ligeor/utils/interactive.py,sha256=T3Jjy6upLA6eyKyoYxftkSBAV-T696snqKm7VuQ9EP4,1585
phoebe/dependencies/ligeor/utils/processing.py,sha256=glNPm-jqxc5C2kpv1a4rqLv0mFTnxUegpWCZh49IcbA,4727
phoebe/dependencies/ligeor/utils/lcutils.py,sha256=2XmIe-UP-2NRZJw4Z6TReLlI-yZszeWIOgnBm4G4k_g,4952
phoebe/dependencies/ligeor/models/__init__.py,sha256=-oXh356dUWdbN26UmdrNBboXySuDcZeryoZe6b7m_tM,71
phoebe/dependencies/ligeor/models/model.py,sha256=UfGrzVfrL-l1oee6IS6Tu0B2ISYhyR3O7CqwO-WsSYw,9292
phoebe/dependencies/ligeor/models/polyfit.py,sha256=55gVXy2PykcOrBt-NSta42KGcmq9lL-FhnsRI6i_wXw,19100
phoebe/dependencies/ligeor/models/twogaussian.py,sha256=y89_14TZ4Ev-vMyKB-pprXKFKRltdCQWa8OYrUm-vvk,31117
phoebe/dependencies/ligeor/ebai/__init__.py,sha256=pe1jdL2d8vKBv0SiUmEVpK-lxHEetMT_Pzqc8Qr1a38,43
phoebe/dependencies/ligeor/ebai/ebai.py,sha256=G0BddlzDBija-NPgN-6Z6W9UrZVlUjXP7b--72jSAmM,11199
phoebe/dependencies/ligeor/ebai/database/generate.py,sha256=9mYX9j9EuyM1nwSFrOQ5aY1EGQPBFgg6ZaZ6O9jMLpE,7739
phoebe/dependencies/ligeor/ebai/database/__init__.py,sha256=2AcCjR6BNxvevMBGZg-DY2E1ZvWzxqc2kPhVAoTelWs,44
phoebe/dependencies/ligeor/ebai/database/model.py,sha256=JRCj9OiLMIKn622E0cfBapWPzYHhlfbhjdsFRW3p3xg,7863
phoebe/dependencies/autofig/cyclers.py,sha256=YSkAOOCJMCoZujAyZlGhT-vQniQdWGqu2UAJkgnJCqs,6059
phoebe/dependencies/autofig/figure.py,sha256=-nA-b8OUJ18gPjFQZ9Ue1409MFqbHPTBTVrkQ_Y3BUQ,28457
phoebe/dependencies/autofig/__init__.py,sha256=JF517H21oYGPiHWu6jx49hfqi7t5Xd6XT9_XJxlG6Zo,7367
phoebe/dependencies/autofig/mpl_animate.py,sha256=oxuQHd0Vg6fTvthDEbpdLNW2Z3RSWWub2tQuVt4lQ3E,2674
phoebe/dependencies/autofig/common.py,sha256=glWXgwDcdxTfN_mWVE8DKMmnQBhbBSuhSirfiFVtVPg,5367
phoebe/dependencies/autofig/callbacks.py,sha256=diXi9pSQOExMTfQzvsP6r_4REmKAaB-T_zKGLc_2PcQ,7847
phoebe/dependencies/autofig/call.py,sha256=sfTqhXaHT-xomvwzyFmA-T_EGRstZYTpDP17eWLUJrY,115058
phoebe/dependencies/autofig/axes.py,sha256=gMuo-it9QHmqs9Dchyhq_kJEqK8Levm43BlVmUFCc7s,73835
phoebe/utils/__init__.py,sha256=CIrqBz5V9W5OziDA7lSGYN3feTmKFPiZAdeBSQVxnqA,8626
phoebe/backend/horizon_analytic.py,sha256=pcjh-sRBNr-idwu8jQi6ozQH_YpHPoMuLShkla1e6vw,3627
phoebe/backend/oc_geometry.py,sha256=4h9K05KKVYcHczaAN_-JMpR0_vP5dEPtctdqwS_RvRI,13077
phoebe/backend/__init__.py,sha256=tx-5ju7SvWKV7oeqBk5fTSO33apiA30CNpqMXPSm7cs,25
phoebe/backend/mesh.py,sha256=hyVH4Xccicm3Es04VlH7oiLMwkbSpXVfQOa-qq4eXg0,55205
phoebe/backend/eclipse.py,sha256=SwtesSSQVWffwDdIA4W0rUr3AVBFi82BSnIUsUYy19c,12146
phoebe/backend/backends.py,sha256=nMYZQd5sFvb_O9bj2PopkEh8CwS4HKIsHo5080AFXUc,142619
phoebe/backend/universe.py,sha256=2EfArEz85nA5v4dtgjrSNapaVYbeptzx3JnnhAlhntk,151462
phoebe/backend/mesh_wd.py,sha256=t63Qa2IKPkiFmLBGoxIXWYmxtb2x_o8MFjTpUyVTPp0,30379
phoebe/backend/etvs.py,sha256=CQ2NXE-_RoRPMD7_RAzGC_Ex3T5b-8hhhA1TxEm2K44,1938
phoebe/solverbackends/solverbackends.py,sha256=jwGPyy4iJhtOBU1Dyx-o0d__27GkUC9c6Cs8sAVu9Ds,155483
phoebe/solverbackends/__init__.py,sha256=UBY0k-2rjy0E5vCR9g8jjmkHKSr0HbinvRT6h25rHqE,30
phoebe/solverbackends/lc_geometry.py,sha256=cIjb2RXjh65UOZ_9lEvXRk_ar_wE-bvaQKm33xYkuPs,17980
phoebe/solverbackends/rv_geometry.py,sha256=_bF9J2D6YnFBsHLEEHJ7Us92P88CZJrT70FKk7H2PtA,8931
phoebe/solverbackends/knn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
phoebe/solverbackends/knn/detached.pf.knn,sha256=jVHu2yu9T5LDIj-CA-e7NSdRcfKXyk5ye5hsYw9S_BI,24721369
phoebe/solverbackends/knn/contact.2g.knn,sha256=7fXSDsYFw_Jf-ReXwdHjl_RxWP8TdZhCUj0-EZmIHqs,24601303
phoebe/solverbackends/ebai/bounds.data,sha256=3ZjSJkpgUz6iIQCRla1g7He1A3k5K3UYU764x3yJXk8,100
phoebe/solverbackends/ebai/__init__.py,sha256=44L9TwFYcVy-8ypIA1AHUj5JYE8R-iWyI3m-4QmS_qI,766
phoebe/solverbackends/ebai/i2h.weights,sha256=RwzuN3t5I3m4sHittViU4S0-zFVOU-fssh8fcnMeOnU,96520
phoebe/solverbackends/ebai/h2o.weights,sha256=D-YB3yqh-eLxdYfn1V2vRVa39cJMXlwAze672XElXSg,2405
phoebe/atmospheres/passbands.py,sha256=J3INhbCviRUk6oSZDpFzRA4uDvWaP4gQXabg2Ysswcg,158816
phoebe/atmospheres/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
phoebe/atmospheres/tables/extinction/extinct.py,sha256=DFqlKGtDCYyfauGvHgSpx0nigA9eitPJXsdDMFcVjr0,787
phoebe/atmospheres/tables/extinction/fm18.txt,sha256=QuvZTjLkxJBTW0amz7_cyP0gmjD2H0v0CW_JJu6lp8E,2244
phoebe/atmospheres/tables/passbands/johnson_v.pb3,sha256=b_LMF-AO8msVEChA4Go0dOU3HaSFqdDa_e_CFpBNL1s,9320221
phoebe/atmospheres/tables/passbands/johnson_v.fits,sha256=lbxiSPqFr-H4g9Px28R7cuTrNF1jED3ZjAkCqiil3os,12219840
phoebe/atmospheres/tables/passbands/README,sha256=C82PM9y7FMtg8lU61eXaAjXYWPeGJ79p5t12P-kDPfM,223
phoebe/atmospheres/tables/passbands/bolometric.pb,sha256=V1kActmiAVy58TY3uvnbYhUF4zdroBANod2udhgdaKY,9337714
phoebe/atmospheres/tables/passbands/bolometric.pb3,sha256=j2yaLR_g-vhO2LE-AYas-t0cRH-xRWCs85QlZqXt0Bc,9339100
phoebe/atmospheres/tables/passbands/bolometric.fits,sha256=fSIy2x1IIpeLXIEHhJhhDWd21Wiy_KNTn4RgeNkr1hY,12225600
phoebe/atmospheres/tables/wd/atmcofplanck.dat,sha256=2oJt6yL5mpT9xARPlr2iAqcPwPnCT7fnk-up5LenhoM,22625
phoebe/atmospheres/tables/wd/atmcof.dat,sha256=vjymGT5HNwWbAGLgodpBzPr8OAmBFm7yasQs4OEc1Oc,3908300
phoebe/parameters/constraint.py,sha256=FTo104bxf3bRgWbJdZUuMgDiz8EKK37eDYdzl6x-ba8,131092
phoebe/parameters/system.py,sha256=Dybb_oT3-_JQh_CoM-AsSU_61cIvtj5EAeIkOK6IlN4,3242
phoebe/parameters/server.py,sha256=16hKXb21GtXETCI2Hh_gq94CDyO_Jen1FBaPZ7YwJVc,8712
phoebe/parameters/__init__.py,sha256=VYapFtz6Gvlp8bJlEobWEn7w_NJbLE99aNeyaKopD4Q,27
phoebe/parameters/unit_choices.py,sha256=otschuLCT33zflUzIHANLXErSdjoMsmop21pvZW8CuI,2835
phoebe/parameters/feature.py,sha256=mmYrwfGM554Ql5yCKueSFr9Zo85qp-PN2MwqRal1L9Y,16065
phoebe/parameters/setting.py,sha256=EPtMqpyZqGOg-CFVShsdQK-ybdS6mwtrIiY5UvIckKw,5169
phoebe/parameters/hierarchy.py,sha256=pwSUEu37ngkIgXLPxoxZGAXP1GWylKSaTZ52WIE5VHw,4198
phoebe/parameters/dataset.py,sha256=kMGpmT9t9N4Bbn3jtA5hZQuVwffAkxWIpt-Z8zck4VQ,64327
phoebe/parameters/parameters.py,sha256=gmPpxA4FMJJ4W1y7lbRU5W7fEXbQ4f6Glve2LwLInBk,550794
phoebe/parameters/twighelpers.py,sha256=Y19ryN5Zi36X7v9917ZjYR7U41KZkiHUbx8oIRvts0Q,851
phoebe/parameters/component.py,sha256=g2YWFEgZR9Phzq0riP5ALdmRCqeQhRVFSYW9nVmogHg,25320
phoebe/parameters/compute.py,sha256=TrJ5ravSBtI-d1NComdDWSmJz4tOI3OkoqkC-gm1wsI,47990
phoebe/parameters/figure/solution.py,sha256=N7PwCvFDybMBE9jOGr5EcFAhvY425rT3N33axEGrjTw,5873
phoebe/parameters/figure/__init__.py,sha256=ZbNCmw_IvizN9qbTetlIntgBhu3xEFQ9CqKQ7-mPCvM,204
phoebe/parameters/figure/distribution.py,sha256=cphJ5ODOPCFkaoi5fQHFD-7zegsWFeqVBVFEdVFfNb0,2213
phoebe/parameters/figure/dataset.py,sha256=7qjzCglxaNrJirw7yaW5jXyaVCJhELHW1SrkccJixzY,17401
phoebe/parameters/figure/common.py,sha256=9rDHdqfZoVDlBKcKtU4Ba53Gly7SeVNjH2TpD_t1Rys,15456
phoebe/parameters/solver/__init__.py,sha256=QTS2tRnf1FxvxfUE_lOGP7CqGRs0eAjG3ArknoO9918,45
phoebe/parameters/solver/optimizer.py,sha256=kDKI8wTGPcrqLg_HTE_rMlyKKnSURcYUsfiPJ3ve9LA,36099
phoebe/parameters/solver/estimator.py,sha256=cI7WFzpGMHAD95Y0qtB8Qwxznwi5OFQpTsomD4ut7X0,28231
phoebe/parameters/solver/sampler.py,sha256=myGRYbxSqEmFHnrL8xAS4CAJFDKiDJMu49sqjvnM8V8,21446
phoebe/lib/cvec.h,sha256=s0inrf6XcDrxi6py_0leiwRDUhAadURNI3g7QNPGbt0,5838
phoebe/lib/utils.h,sha256=u-gFoc2Am9sGmOaDG1hWYIYXm9Psbuezoy2HPQvyXE0,24345
phoebe/lib/gen_roche_lagrange_L1.h,sha256=8S5yd9COuFwx7Slgff-aYqb7cZkYMgJ4O7Zd0pDIwvs,13762
phoebe/lib/ld_models.h,sha256=qJm-J5vQUbN8XR722bJMTexgr9XBwt73iCDxYhc_Em8,17025
phoebe/lib/bodies.h,sha256=8RBjR2HvxsaHcMdI2JuUG3bTiHi2v-jmUU8hs2WRhB8,26242
phoebe/lib/sincos.h,sha256=54grwlUpacE_d1VtY09AcrWvc9DhrOWttkizgQw2_2U,1296
phoebe/lib/redistribution.h,sha256=dOQ2W_SmOKXw1uUTSDlaajpbhwlmio8zdi255XV6WwU,27286
phoebe/lib/interpolation.h,sha256=-aSdqvC-71X6KL78SMOOo6AZ1P0S92PcZDdIIuWzrl0,4605
phoebe/lib/gen_roche_lagrange_L2.h,sha256=QugTbj1h3SqBFD3rUpZTRNi8yeJFSlFYlSE1FA1C0gE,8417
phoebe/lib/triang_marching.h,sha256=TrMxX5pRmLgd9TiyDdijdeA2f6pKoGkFqLOk8pEqT1k,65903
phoebe/lib/libphoebe.cpp,sha256=wJRFTbsqYXz_jQKjy8tFdH8JY_7vpHO07VpJlTwQsEI,303109
phoebe/lib/gen_roche.h,sha256=iLfUB8JzS4rrYGwVO8Wpbvbz3wIEA9C1kj9SemuBj1w,72259
phoebe/lib/refinement.h,sha256=JGWb78hv_cw2BNanuYD9YXG9361q-j13QnG-W-WMbqc,4367
phoebe/lib/contact.h,sha256=7DB5XdjlkUyixeu_eJj_lCPoh4Shg9OqgbSBSY4dFy0,2666
phoebe/lib/eclipsing.h,sha256=rrfT1K3FmOdHqXdpS66CZwiCQgzUqAeCOietoXAW9cE,42469
phoebe/lib/gen_roche_lagrange_L3.h,sha256=4eItq0gbh_xjgYW6B7YZV_BK252xs-rt3Wd7WYOnExw,10195
phoebe/lib/triang_mesh.h,sha256=EVhpbVKY-12Ps5RkoO-Y45LVe7IFYETxIQoZbdxS4WY,21269
phoebe/lib/clipper.h,sha256=VlRqlJpJZ7zfKNSyYhHZabZERL1z9oNRijHOw8kcO_s,164910
phoebe/lib/wd_atm.h,sha256=AyKlxlAJLt0gHFR0h4r7yvjIfX8XsdR_Kf6x6YJ2z_0,18407
phoebe/lib/horizon.h,sha256=ODuXscPWtTfLLFBEcKa2wcUYPk7Rw0VpVQ2U0bZaXpw,2489
phoebe/lib/misaligned_roche.h,sha256=_vVF4ticYlCzRO8r9TXePjzFHDNuHxMcbY2DRFIF00E,62417
phoebe/lib/povray.h,sha256=h4OtENaYawStYkwTPG6G2riDB5PiZLgtHMyKngC704Y,3970
phoebe/lib/hash.h,sha256=22LGDUVN8WSLtq83ybntn4c7smhI9AjluXq6rwOzrow,2742
phoebe/lib/reflection.h,sha256=lRJRLAumpFN9gBh4A5iiKBJUX8ZeivgxNuLVvEYx1lQ,48481
phoebe/lib/rot_star.h,sha256=xzTzk9souzTHnohSgSU01zVoSBp1Pyu6DcG836RlC7o,19662
phoebe/distortions/__init__.py,sha256=PjJDvUjlKCwSq0-JYIx-uggG8EHQlgpgvI3iLWLIX1g,30
phoebe/distortions/roche.py,sha256=7sJs3szun9Doz_nO3nDNO1p24EJD3aP5nUMi5-2JKms,17564
phoebe/distortions/rotstar.py,sha256=iiUSjm6K9wsFNFlbq7tGoYXT7V9AxOe9Quuo2JK5nSM,1878
phoebe/pool/multipool.py,sha256=ZKArGNOS8_SYK8BeFgB6C9JxA6bN90gJHpGc7LJG5l0,3473
phoebe/pool/error.py,sha256=8c5zBKe9Zc-NHTe_muAk0aQCAwiN6tLn8Sl8ueJFIqM,65
phoebe/pool/__init__.py,sha256=1ZFVTS_rFx2Mh3dsHZ3tkQsVfh_B8m4IjpkQqQRhliE,568
phoebe/pool/mpi.py,sha256=ZFUsL7NHDLgKdoz7NnyuBcUoAnUUeieY2qN-mERri6Q,6681
phoebe/pool/serial.py,sha256=U3W46qo0OfKDheFzfkPIV_Ik7ZKJnRlnI-aYI9x2YaE,1588
phoebe/pool/pool.py,sha256=VRrhWrNVNvpjIn6uMDuFhYkPhm1HsRnj7_-WXO_OAeY,937
phoebe/helpers/__init__.py,sha256=cyemscjrx0-77k7ZQQCAwW11QagY2n9et6NIruymxDE,20062
Wheel-Version: 1.0
Generator: setuptools (80.9.0)
Root-Is-Purelib: false
Tag: cp310-cp310-macosx_10_9_x86_64

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display