notbugAs an Amazon Associate I earn from qualifying purchases.
Want a good read? Try FreeBSD Mastery: Jails (IT Mastery Book 15)
Want a good monitor light? See my photosAll times are UTC
Ukraine

Bot filter coming soon

To deter bots pegging the database CPU to 100%, a bot testing filter to be added to the website. This should not affect newsfeeds etc. Anubis seems light-weight - it is already in use within the FreeBSD Project. This notice is just a heads up in case you see something odd. This notice will be updated after Anubis is installed.

Port details
py-pendulum Python package to ease datetimes manipulation
3.1.0_1 devel on this many watch lists=3 search for ports that depend on this port Find issues related to this port Report an issue related to this port View this port on Repology. pkg-fallout 3.0.0Version of this port present on the latest quarterly branch.
Maintainer: sunpoet@FreeBSD.org search for ports maintained by this maintainer
Port Added: 2018-11-01 12:31:44
Last Update: 2025-06-05 07:52:53
Commit Hash: 3ed29b8
People watching this port, also watch:: nagios-check_hdd_health, nuitka-py311, monit, py311-beautifulsoup, openmdns
Also Listed In: python
License: MIT
WWW:
https://pendulum.eustace.io/
https://pendulum.eustace.io/docs/
https://github.com/python-pendulum/pendulum
Description:
Native datetime instances are enough for basic cases but when you face more complex use-cases they often show limitations and are not so intuitive to work with. Pendulum provides a cleaner and more easy to use API while still relying on the standard library. So it's still datetime but better. Unlike other datetime libraries for Python, Pendulum is a drop-in replacement for the standard datetime class (it inherits from it), so, basically, you can replace all your datetime instances by DateTime instances in your code (exceptions exist for libraries that check the type of the objects by using the type function like sqlite3 or PyMySQL for instance). It also removes the notion of naive datetimes: each Pendulum instance is timezone-aware and by default in UTC for ease of use. Pendulum also improves the standard timedelta class by providing more intuitive methods and properties.
HomepageHomepageHomepage    cgit ¦ Codeberg ¦ GitHub ¦ GitLab ¦ SVNWeb

Manual pages:
FreshPorts has no man page information for this port.
pkg-plist: as obtained via: make generate-plist
There is no configure plist information for this port.
Dependency lines:
  • ${PYTHON_PKGNAMEPREFIX}pendulum>0:devel/py-pendulum@${PY_FLAVOR}
To install the port:
cd /usr/ports/devel/py-pendulum/ && make install clean
To add the package, run one of these commands:
  • pkg install devel/py-pendulum
  • pkg install py311-pendulum
NOTE: If this package has multiple flavors (see below), then use one of them instead of the name specified above.
NOTE: This is a Python port. Instead of py311-pendulum listed in the above command, you can pick from the names under the Packages section.
PKGNAME: py311-pendulum
Package flavors (<flavor>: <package>)
  • py311: py311-pendulum
distinfo:
TIMESTAMP = 1745936160 SHA256 (pendulum-3.1.0.tar.gz) = 66f96303560f41d097bee7d2dc98ffca716fbb3a832c4b3062034c2d45865015 SIZE (pendulum-3.1.0.tar.gz) = 85930

Expand this list (44 items)

Collapse this list.

SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 SHA256 (rust/crates/cc-1.2.19.crate) = 8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362 SIZE (rust/crates/cc-1.2.19.crate) = 105910 SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934 SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea SIZE (rust/crates/heck-0.5.0.crate) = 11517 SHA256 (rust/crates/indoc-2.0.6.crate) = f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd SIZE (rust/crates/indoc-2.0.6.crate) = 17164 SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa SIZE (rust/crates/libc-0.2.172.crate) = 791646 SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a SIZE (rust/crates/memoffset-0.9.1.crate) = 9032 SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d SIZE (rust/crates/once_cell-1.21.3.crate) = 34534 SHA256 (rust/crates/portable-atomic-1.11.0.crate) = 350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e SIZE (rust/crates/portable-atomic-1.11.0.crate) = 181258 SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778 SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820 SHA256 (rust/crates/pyo3-0.24.1.crate) = 17da310086b068fbdcefbba30aeb3721d5bb9af8db4987d6735b2183ca567229 SIZE (rust/crates/pyo3-0.24.1.crate) = 1113050 SHA256 (rust/crates/pyo3-build-config-0.24.1.crate) = e27165889bd793000a098bb966adc4300c312497ea25cf7a690a9f0ac5aa5fc1 SIZE (rust/crates/pyo3-build-config-0.24.1.crate) = 34020 SHA256 (rust/crates/pyo3-ffi-0.24.1.crate) = 05280526e1dbf6b420062f3ef228b78c0c54ba94e157f5cb724a609d0f2faabc SIZE (rust/crates/pyo3-ffi-0.24.1.crate) = 76435 SHA256 (rust/crates/pyo3-macros-0.24.1.crate) = 5c3ce5686aa4d3f63359a5100c62a127c9f15e8398e5fdeb5deef1fed5cd5f44 SIZE (rust/crates/pyo3-macros-0.24.1.crate) = 8866 SHA256 (rust/crates/pyo3-macros-backend-0.24.1.crate) = f4cf6faa0cbfb0ed08e89beb8103ae9724eb4750e3a78084ba4017cbe94f3855 SIZE (rust/crates/pyo3-macros-backend-0.24.1.crate) = 72588 SHA256 (rust/crates/python3-dll-a-0.2.13.crate) = 49fe4227a288cf9493942ad0220ea3f185f4d1f2a14f197f7344d6d02f4ed4ed SIZE (rust/crates/python3-dll-a-0.2.13.crate) = 85018 SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d SIZE (rust/crates/quote-1.0.40.crate) = 31063 SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 SIZE (rust/crates/shlex-1.3.0.crate) = 18713 SHA256 (rust/crates/syn-2.0.100.crate) = b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0 SIZE (rust/crates/syn-2.0.100.crate) = 297947 SHA256 (rust/crates/target-lexicon-0.13.2.crate) = e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a SIZE (rust/crates/target-lexicon-0.13.2.crate) = 27923 SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512 SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743 SHA256 (rust/crates/unindent-0.2.4.crate) = 7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3 SIZE (rust/crates/unindent-0.2.4.crate) = 7422

Collapse this list.


Packages (timestamps in pop-ups are UTC):
py37-pendulum
ABIaarch64amd64armv6armv7i386powerpcpowerpc64powerpc64le
FreeBSD:13:latest--2.1.1---2.1.1-
FreeBSD:13:quarterly--------
FreeBSD:14:latest--------
FreeBSD:14:quarterly--------
FreeBSD:15:latest--n/a-n/a---
 
py39-pendulum
ABIaarch64amd64armv6armv7i386powerpcpowerpc64powerpc64le
FreeBSD:13:latest--------
FreeBSD:13:quarterly--2.1.1_1--2.1.1_12.1.1_12.1.1_1
FreeBSD:14:latest--2.1.1_1--2.1.1_1-2.1.1_1
FreeBSD:14:quarterly-----2.1.1_12.1.1_12.1.1_1
FreeBSD:15:latest--n/a-n/a2.1.1_12.1.1_12.1.1_1
 
py311-pendulum
ABIaarch64amd64armv6armv7i386powerpcpowerpc64powerpc64le
FreeBSD:13:latest3.0.0_13.1.0_1--3.1.0_1---
FreeBSD:13:quarterly3.0.03.0.0------
FreeBSD:14:latest3.0.0_13.1.0_1--3.1.0_1---
FreeBSD:14:quarterly3.0.03.0.0------
FreeBSD:15:latest3.0.0_13.1.0n/a-n/a---
 
Dependencies
NOTE: FreshPorts displays only information on required and default dependencies. Optional dependencies are not covered.
Build dependencies:
  1. py311-maturin>=1.0<2.0 : devel/py-maturin@py311
  2. rust>=1.87.0 : lang/rust
  3. python3.11 : lang/python311
  4. py311-build>=0 : devel/py-build@py311
  5. py311-installer>=0 : devel/py-installer@py311
Test dependencies:
  1. python3.11 : lang/python311
Runtime dependencies:
  1. py311-python-dateutil>=2.6 : devel/py-python-dateutil@py311
  2. py311-time-machine>=2.6.0 : devel/py-time-machine@py311
  3. py311-tzdata>=2020.1 : devel/py-tzdata@py311
  4. python3.11 : lang/python311
This port is required by:
for Run
  1. devel/py-pydantic-extra-types

Configuration Options:
No options to configure
Options name:
devel_py-pendulum
USES:
cargo python
FreshPorts was unable to extract/find any pkg message
Master Sites:
Expand this list (2 items)
Collapse this list.
  1. https://files.pythonhosted.org/packages/source/p/pendulum/
  2. https://pypi.org/packages/source/p/pendulum/
Collapse this list.

Number of commits found: 21

Commit History - (may be incomplete: for full details, see links to repositories near top of page)
CommitCreditsLog message
3.1.0_1
05 Jun 2025 07:52:53
commit hash: 3ed29b818520b4c5691c1c49d13fd6b89c3142efcommit hash: 3ed29b818520b4c5691c1c49d13fd6b89c3142efcommit hash: 3ed29b818520b4c5691c1c49d13fd6b89c3142efcommit hash: 3ed29b818520b4c5691c1c49d13fd6b89c3142ef files touched by this commit
Mikael Urankar (mikael) search for other commits by this committer
lang/rust: Bump revisions after 1.87.0

PR:		286829
3.1.0
18 May 2025 03:34:40
commit hash: 04862a0fa06b05e4545135a7a295f852b0050359commit hash: 04862a0fa06b05e4545135a7a295f852b0050359commit hash: 04862a0fa06b05e4545135a7a295f852b0050359commit hash: 04862a0fa06b05e4545135a7a295f852b0050359 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-pendulum: Update to 3.1.0

- Add LICENSE_FILE

Changes:	https://github.com/python-pendulum/pendulum/releases
		https://pendulum.eustace.io/history/
3.0.0_1
08 Apr 2025 08:41:13
commit hash: 2a5976aebeefd09d36fd4ac2e7e2eefde5491c0dcommit hash: 2a5976aebeefd09d36fd4ac2e7e2eefde5491c0dcommit hash: 2a5976aebeefd09d36fd4ac2e7e2eefde5491c0dcommit hash: 2a5976aebeefd09d36fd4ac2e7e2eefde5491c0d files touched by this commit
Mikael Urankar (mikael) search for other commits by this committer
lang/rust: Bump revisions after 1.86.0

PR:		285840
3.0.0
19 Mar 2025 18:15:53
commit hash: b0f76cf31497e4c0a768e1c67e943bbb06504b59commit hash: b0f76cf31497e4c0a768e1c67e943bbb06504b59commit hash: b0f76cf31497e4c0a768e1c67e943bbb06504b59commit hash: b0f76cf31497e4c0a768e1c67e943bbb06504b59 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-pendulum: Update to 3.0.0

- Update WWW
- Update version requirement of RUN_DEPENDS
- Convert to USE_PYTHON=pep517
- Remove PORTSCOUT
- Update pkg-descr
- Take maintainership

Changes:	https://github.com/python-pendulum/pendulum/releases
		https://pendulum.eustace.io/history/
2.1.1_3
19 Mar 2025 13:10:18
commit hash: 2c9002108ab978730861aca2e7389a8b43e492f7commit hash: 2c9002108ab978730861aca2e7389a8b43e492f7commit hash: 2c9002108ab978730861aca2e7389a8b43e492f7commit hash: 2c9002108ab978730861aca2e7389a8b43e492f7 files touched by this commit
Renato Botelho (garga) search for other commits by this committer
devel/py-pendulum: Drop maintainership
2.1.1_3
08 Mar 2025 04:05:21
commit hash: 06a08e69f3acb846ad8252945f53c3a2d211e303commit hash: 06a08e69f3acb846ad8252945f53c3a2d211e303commit hash: 06a08e69f3acb846ad8252945f53c3a2d211e303commit hash: 06a08e69f3acb846ad8252945f53c3a2d211e303 files touched by this commit
Charlie Li (vishwin) search for other commits by this committer
python: bump all USE_PYTHON=distutils consumers after RUN_DEPENDS removal

Any missed ports, feel free to bump.

Any ports that need setuptools at runtime can have the devel/py-setuptools
manually added back to RUN_DEPENDS, but understand that this practice
is deprecated; see CHANGES for details.
2.1.1_2
13 Apr 2024 14:47:51
commit hash: 84a372ad5ff0dab59a76d894d1e7fb0a5bb7b742commit hash: 84a372ad5ff0dab59a76d894d1e7fb0a5bb7b742commit hash: 84a372ad5ff0dab59a76d894d1e7fb0a5bb7b742commit hash: 84a372ad5ff0dab59a76d894d1e7fb0a5bb7b742 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-python-dateutil: Move devel/py-dateutil to devel/py-python-dateutil

- Convert to USE_PYTHON=pep517
- Bump PORTREVISION of dependent ports for dependency change
- While I'm here, update audio/py-pyradio to use PYTHON_PKGNAMEPREFIX instead of
PKGNAMEPREFIX for *_DEPENDS
2.1.1_1
27 Jun 2023 19:34:34
commit hash: 3d9a815d9c5acbb71f4bb07738bdeab4879feacbcommit hash: 3d9a815d9c5acbb71f4bb07738bdeab4879feacbcommit hash: 3d9a815d9c5acbb71f4bb07738bdeab4879feacbcommit hash: 3d9a815d9c5acbb71f4bb07738bdeab4879feacb files touched by this commit
Rene Ladan (rene) search for other commits by this committer
all: remove explicit versions in USES=python for "3.x+"

The logic in USES=python will automatically convert this to 3.8+ by
itself.

Adjust two ports that only had Python 3.7 mentioned but build fine
on Python 3.8 too.

finance/quickfix: mark BROKEN with PYTHON

libtool: compile:  c++ -DHAVE_CONFIG_H -I. -I../.. -I -I. -I.. -I../.. -I../C++
-DLIBICONV_PLUG -DPYTHON_MAJOR_VERSION=3 -Wno-unused-variable
-Wno-maybe-uninitialized -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong
-fno-strict-aliasing -DLIBICONV_PLUG -Wall -ansi
-Wno-unused-command-line-argument -Wpointer-arith -Wwrite-strings
-Wno-overloaded-virtual -Wno-deprecated-declarations -Wno-deprecated -std=c++0x
-MT _quickfix_la-QuickfixPython.lo -MD -MP -MF
.deps/_quickfix_la-QuickfixPython.Tpo -c QuickfixPython.cpp  -fPIC -DPIC -o
.libs/_quickfix_la-QuickfixPython.o
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean
'-Wno-uninitialized'? [-Wunknown-warning-option]
QuickfixPython.cpp:175:11: fatal error: 'Python.h' file not found
          ^~~~~~~~~~
1 warning and 1 error generated.

Reviewed by:	portmgr, vishwin, yuri
Differential Revision:	<https://reviews.freebsd.org/D40568>
2.1.1_1
11 Jan 2023 15:58:34
commit hash: 77d68471aded6907dbbcb5ef50d557e4c69db656commit hash: 77d68471aded6907dbbcb5ef50d557e4c69db656commit hash: 77d68471aded6907dbbcb5ef50d557e4c69db656commit hash: 77d68471aded6907dbbcb5ef50d557e4c69db656 files touched by this commit
Dmitry Marakasov (amdmi3) search for other commits by this committer
*/*: rename CHEESESHOP to PYPI in MASTER_SITES

PR:			267994
Differential revision:	D37518
Approved by:		bapt
07 Sep 2022 21:58:51
commit hash: fb16dfecae4a6efac9f3a78e0b759fb7a3c53de4commit hash: fb16dfecae4a6efac9f3a78e0b759fb7a3c53de4commit hash: fb16dfecae4a6efac9f3a78e0b759fb7a3c53de4commit hash: fb16dfecae4a6efac9f3a78e0b759fb7a3c53de4 files touched by this commit
Stefan Eßer (se) search for other commits by this committer
Remove WWW entries moved into port Makefiles

Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.

This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.

Approved by:		portmgr (tcberner)
2.1.1_1
07 Sep 2022 21:10:59
commit hash: b7f05445c00f2625aa19b4154ebcbce5ed2daa52commit hash: b7f05445c00f2625aa19b4154ebcbce5ed2daa52commit hash: b7f05445c00f2625aa19b4154ebcbce5ed2daa52commit hash: b7f05445c00f2625aa19b4154ebcbce5ed2daa52 files touched by this commit
Stefan Eßer (se) search for other commits by this committer
Add WWW entries to port Makefiles

It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.

Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.

There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above View all of this commit message)
2.1.1_1
24 Aug 2022 12:25:00
commit hash: 6c7ff473640719429296fb269e7b631717f05127commit hash: 6c7ff473640719429296fb269e7b631717f05127commit hash: 6c7ff473640719429296fb269e7b631717f05127commit hash: 6c7ff473640719429296fb269e7b631717f05127 files touched by this commit
Renato Botelho (garga) search for other commits by this committer
devel/py-pendulum: Skip 2.1.2 version

Set portscout to skip version 2.1.2 since this version has no functional
changes.

Sponsored by:	Rubicon Communications, LLC ("Netgate")
2.1.1_1
07 Apr 2021 08:09:01
commit hash: cf118ccf875508b9a1c570044c93cfcc82bd455ccommit hash: cf118ccf875508b9a1c570044c93cfcc82bd455ccommit hash: cf118ccf875508b9a1c570044c93cfcc82bd455ccommit hash: cf118ccf875508b9a1c570044c93cfcc82bd455c files touched by this commit
Mathieu Arnold (mat) search for other commits by this committer
One more small cleanup, forgotten yesterday.
Reported by:	lwhsu
2.1.1_1
06 Apr 2021 14:31:07
commit hash: 305f148f482daf30dcf728039d03d019f88344ebcommit hash: 305f148f482daf30dcf728039d03d019f88344ebcommit hash: 305f148f482daf30dcf728039d03d019f88344ebcommit hash: 305f148f482daf30dcf728039d03d019f88344eb files touched by this commit
Mathieu Arnold (mat) search for other commits by this committer
Remove # $FreeBSD$ from Makefiles.
2.1.1_1
12 Feb 2021 18:00:16
Revision:565040Original commit files touched by this commit
amdmi3 search for other commits by this committer
- Add missing runtime dependency on pytzdata

PR:		252915
Submitted by:	vvelox@vvelox.net
Approved by:	maintainer timeout (garga, 2 weeks)
2.1.1
24 Dec 2020 13:46:02
Revision:559094Original commit files touched by this commit
kai search for other commits by this committer
Relax hardcoded paths to fix build with Python 3.8.7

Since r558913 Python 3.8 incorporates BPO-42604 [1] which changed the
shared libs naming scheme.  This means "EXT_SUFFIX" is now derived from
SOABI and yields with Python 3.8 to ".cpython-38.so" instead of ".so".

The affected ports strip the libaries in the "post-install" target via
hardcoded path(s) and the build fails at the end because the new extension
is not expected at this place.

Remedy the issue by adding wildcards to these paths.  This should also
prepare the ports for future Python releases, which will use the new shared
libs naming scheme.

[1] https://bugs.python.org/issue42604

PR:		252057
Reported by:	John Kennedy
Reviewed by:	fluffy, koobs
Approved by:	koobs (python)
2.1.1
14 Jul 2020 12:20:52
Revision:542207Original commit files touched by this commit
garga search for other commits by this committer
devel/py-pendulum: Update to 2.1.1
2.1.0
14 Apr 2020 12:42:35
Revision:531677Original commit files touched by this commit
garga search for other commits by this committer
devel/py-pendulum: Update to 2.1.0
2.0.5
24 Jul 2019 14:17:10
Revision:507273Original commit files touched by this commit
garga search for other commits by this committer
devel/py-pendulum: Update to 2.0.5
2.0.4_1
13 Nov 2018 10:25:32
Revision:484869Original commit files touched by this commit
garga search for other commits by this committer
devel/py-pendulum: Add missing dependencies
2.0.4
01 Nov 2018 12:31:36
Revision:483659Original commit files touched by this commit
garga search for other commits by this committer
New port: devel/py-pendulum: Python package to ease datetimes manipulation

Number of commits found: 21