@@ -1670,22 +1670,11 @@ def _normalize_dir(self, value):
1670
1670
value = os .path .abspath (value )
1671
1671
return value
1672
1672
1673
- # Because the validation of preferred_dir depends on root_dir and validation
1674
- # occurs when the trait is loaded, there are times when we should defer the
1675
- # validation of preferred_dir (e.g., when preferred_dir is defined via CLI
1676
- # and root_dir is defined via a config file).
1677
- _defer_preferred_dir_validation = False
1678
-
1679
1673
@validate ("root_dir" )
1680
1674
def _root_dir_validate (self , proposal ):
1681
1675
value = self ._normalize_dir (proposal ["value" ])
1682
1676
if not os .path .isdir (value ):
1683
1677
raise TraitError (trans .gettext ("No such directory: '%r'" ) % value )
1684
-
1685
- if self ._defer_preferred_dir_validation :
1686
- # If we're here, then preferred_dir is configured on the CLI and
1687
- # root_dir is configured in a file
1688
- self ._preferred_dir_validation (self .preferred_dir , value )
1689
1678
return value
1690
1679
1691
1680
preferred_dir = Unicode (
@@ -1702,39 +1691,8 @@ def _preferred_dir_validate(self, proposal):
1702
1691
value = self ._normalize_dir (proposal ["value" ])
1703
1692
if not os .path .isdir (value ):
1704
1693
raise TraitError (trans .gettext ("No such preferred dir: '%r'" ) % value )
1705
-
1706
- # Before we validate against root_dir, check if this trait is defined on the CLI
1707
- # and root_dir is not. If that's the case, we'll defer it's further validation
1708
- # until root_dir is validated or the server is starting (the latter occurs when
1709
- # the default root_dir (cwd) is used).
1710
- cli_config = self .cli_config .get ("ServerApp" , {})
1711
- if "preferred_dir" in cli_config and "root_dir" not in cli_config :
1712
- self ._defer_preferred_dir_validation = True
1713
-
1714
- if not self ._defer_preferred_dir_validation : # Validate now
1715
- self ._preferred_dir_validation (value , self .root_dir )
1716
1694
return value
1717
1695
1718
- def _preferred_dir_validation (self , preferred_dir : str , root_dir : str ) -> None :
1719
- """Validate preferred dir relative to root_dir - preferred_dir must be equal or a subdir of root_dir"""
1720
- if not preferred_dir .startswith (root_dir ):
1721
- raise TraitError (
1722
- trans .gettext (
1723
- "preferred_dir must be equal or a subdir of root_dir. preferred_dir: '%r' root_dir: '%r'"
1724
- )
1725
- % (preferred_dir , root_dir )
1726
- )
1727
- self ._defer_preferred_dir_validation = False
1728
-
1729
- @observe ("root_dir" )
1730
- def _root_dir_changed (self , change ):
1731
- self ._root_dir_set = True
1732
- if not self .preferred_dir .startswith (change ["new" ]):
1733
- self .log .warning (
1734
- trans .gettext ("Value of preferred_dir updated to use value of root_dir" )
1735
- )
1736
- self .preferred_dir = change ["new" ]
1737
-
1738
1696
@observe ("server_extensions" )
1739
1697
def _update_server_extensions (self , change ):
1740
1698
self .log .warning (_i18n ("server_extensions is deprecated, use jpserver_extensions" ))
@@ -1916,6 +1874,9 @@ def init_configurables(self):
1916
1874
parent = self ,
1917
1875
log = self .log ,
1918
1876
)
1877
+ # Trigger a default/validation here explicitly while we still support the
1878
+ # deprecated trait on ServerApp (FIXME remove when deprecation finalized)
1879
+ self .contents_manager .preferred_dir
1919
1880
self .session_manager = self .session_manager_class (
1920
1881
parent = self ,
1921
1882
log = self .log ,
@@ -2551,10 +2512,6 @@ def initialize(
2551
2512
# Parse command line, load ServerApp config files,
2552
2513
# and update ServerApp config.
2553
2514
super ().initialize (argv = argv )
2554
- if self ._defer_preferred_dir_validation :
2555
- # If we're here, then preferred_dir is configured on the CLI and
2556
- # root_dir has the default value (cwd)
2557
- self ._preferred_dir_validation (self .preferred_dir , self .root_dir )
2558
2515
if self ._dispatching :
2559
2516
return
2560
2517
# initialize io loop as early as possible,
0 commit comments